diff --git a/src/plugins/coreplugin/core.qrc b/src/plugins/coreplugin/core.qrc
index c2a38452dcfe7a6ca41184fd04f87f06d8e48112..a7271ec6bebfb1997197ec77032d3ba166e194e4 100644
--- a/src/plugins/coreplugin/core.qrc
+++ b/src/plugins/coreplugin/core.qrc
@@ -67,5 +67,6 @@
         <file>images/undo.png</file>
         <file>images/unknownfile.png</file>
         <file>images/unlocked.png</file>
+        <file>images/extension.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/coreplugin/images/extension.png b/src/plugins/coreplugin/images/extension.png
new file mode 100644
index 0000000000000000000000000000000000000000..6bdfc07b83043b3443064d61e4dc74fe97ea8f95
Binary files /dev/null and b/src/plugins/coreplugin/images/extension.png differ
diff --git a/src/plugins/coreplugin/images/linkicon.png b/src/plugins/coreplugin/images/linkicon.png
index 864f36f174708b92f2d7bcbb1ba459273510215d..4e4d4f7b7fbac77c23076501afd79910395a5fce 100644
Binary files a/src/plugins/coreplugin/images/linkicon.png and b/src/plugins/coreplugin/images/linkicon.png differ
diff --git a/src/plugins/coreplugin/images/splitbutton_horizontal.png b/src/plugins/coreplugin/images/splitbutton_horizontal.png
index 7b5f493758724b41d38d2288e0749b3bc841e1c2..a71fdfdb6244f23a5994f418cacfc39cede918b5 100644
Binary files a/src/plugins/coreplugin/images/splitbutton_horizontal.png and b/src/plugins/coreplugin/images/splitbutton_horizontal.png differ
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 262b70b2145f044adcc26111c5cb290be7960794..97648813d0171c64df5515382dfb3e1668f5ba84 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -152,6 +152,24 @@ MainWindow::MainWindow() :
 
     setWindowTitle(tr("Qt Creator"));
     qApp->setWindowIcon(QIcon(":/core/images/qtcreator_logo_128.png"));
+    QCoreApplication::setApplicationName(QLatin1String("QtCreator"));
+    QCoreApplication::setApplicationVersion(QLatin1String(Core::Constants::IDE_VERSION_LONG));
+    QCoreApplication::setOrganizationName(QLatin1String("Nokia"));
+    QSettings::setDefaultFormat(QSettings::IniFormat);
+    QString baseName = qApp->style()->objectName();
+#ifdef Q_WS_X11
+    if (baseName == "windows") {
+        // Sometimes we get the standard windows 95 style as a fallback
+        // e.g. if we are running on a KDE4 desktop
+        QByteArray desktopEnvironment = qgetenv("DESKTOP_SESSION");
+        if (desktopEnvironment == "kde")
+            baseName = "plastique";
+        else
+            baseName = "cleanlooks";
+    }
+#endif
+    qApp->setStyle(new ManhattanStyle(baseName));
+
     setDockNestingEnabled(true);
 
     setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
@@ -183,23 +201,6 @@ MainWindow::MainWindow() :
      //signal(SIGINT, handleSigInt);
 #endif
 
-    QCoreApplication::setApplicationName(QLatin1String("QtCreator"));
-    QCoreApplication::setApplicationVersion(QLatin1String(Core::Constants::IDE_VERSION_LONG));
-    QCoreApplication::setOrganizationName(QLatin1String("Nokia"));
-    QSettings::setDefaultFormat(QSettings::IniFormat);
-    QString baseName = qApp->style()->objectName();
-#ifdef Q_WS_X11
-    if (baseName == "windows") {
-        // Sometimes we get the standard windows 95 style as a fallback
-        // e.g. if we are running on a KDE4 desktop
-        QByteArray desktopEnvironment = qgetenv("DESKTOP_SESSION");
-        if (desktopEnvironment == "kde")
-            baseName = "plastique";
-        else
-            baseName = "cleanlooks";
-    }
-#endif
-    qApp->setStyle(new ManhattanStyle(baseName));
     statusBar()->setProperty("p_styled", true);
 }
 
diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp
index a38a6c9774bad75a4e2dadf6c941e8dcc8e172a4..ee3ca2f62d195b35a5d455d9dd979ac7c87385df 100644
--- a/src/plugins/coreplugin/manhattanstyle.cpp
+++ b/src/plugins/coreplugin/manhattanstyle.cpp
@@ -345,12 +345,11 @@ void ManhattanStyle::polish(QPalette &pal)
 QIcon ManhattanStyle::standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option,
                                                  const QWidget *widget) const
 {
-    static const QIcon closeButton(":/core/images/closebutton.png");
     QIcon icon;
     switch (standardIcon) {
     case QStyle::SP_TitleBarCloseButton:
-        icon = closeButton;
-        break;
+    case QStyle::SP_ToolBarHorizontalExtensionButton:
+        return QIcon(standardPixmap(standardIcon, option, widget));
     default:
         icon = d->style->standardIcon(standardIcon, option, widget);
     }
@@ -360,11 +359,20 @@ QIcon ManhattanStyle::standardIconImplementation(StandardPixmap standardIcon, co
 QPixmap ManhattanStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,
                                        const QWidget *widget) const
 {
-    static const QPixmap closeButton(":/core/images/closebutton.png");
+    if (widget && !panelWidget(widget))
+        return d->style->standardPixmap(standardPixmap, opt, widget);
+
     QPixmap pixmap;
     switch (standardPixmap) {
-    case QStyle::SP_TitleBarCloseButton:
-        pixmap = closeButton;
+    case QStyle::SP_ToolBarHorizontalExtensionButton: {
+            static const QPixmap extButton(":/core/images/extension.png");
+            pixmap = extButton;
+        }
+        break;
+    case QStyle::SP_TitleBarCloseButton: {
+            static const QPixmap closeButton(":/core/images/closebutton.png");
+            pixmap = closeButton;
+        }
         break;
     default:
         pixmap = d->style->standardPixmap(standardPixmap, opt, widget);
@@ -593,6 +601,84 @@ void ManhattanStyle::drawPrimitive(PrimitiveElement element, const QStyleOption
             painter->restore();
         }
         break;
+    case PE_IndicatorArrowUp:
+    case PE_IndicatorArrowDown:
+    case PE_IndicatorArrowRight:
+    case PE_IndicatorArrowLeft:
+        {
+            // From windowsstyle but modified to enable AA
+            if (option->rect.width() <= 1 || option->rect.height() <= 1)
+                break;
+
+            QRect r = option->rect;
+            int size = qMin(r.height(), r.width());
+            QPixmap pixmap;
+            QString pixmapName;
+            pixmapName.sprintf("%s-%s-%d-%d-%d-%lld",
+                               "$qt_ia", metaObject()->className(),
+                               uint(option->state), element,
+                               size, option->palette.cacheKey());
+            if (!QPixmapCache::find(pixmapName, pixmap)) {
+                int border = size/5;
+                int sqsize = 2*(size/2);
+                QImage image(sqsize, sqsize, QImage::Format_ARGB32);
+                image.fill(Qt::transparent);
+                QPainter imagePainter(&image);
+                imagePainter.setRenderHint(QPainter::Antialiasing, true);
+                imagePainter.translate(0.5, 0.5);
+                QPolygon a;
+                switch (element) {
+                    case PE_IndicatorArrowUp:
+                        a.setPoints(3, border, sqsize/2,  sqsize/2, border,  sqsize - border, sqsize/2);
+                        break;
+                    case PE_IndicatorArrowDown:
+                        a.setPoints(3, border, sqsize/2,  sqsize/2, sqsize - border,  sqsize - border, sqsize/2);
+                        break;
+                    case PE_IndicatorArrowRight:
+                        a.setPoints(3, sqsize - border, sqsize/2,  sqsize/2, border,  sqsize/2, sqsize - border);
+                        break;
+                    case PE_IndicatorArrowLeft:
+                        a.setPoints(3, border, sqsize/2,  sqsize/2, border,  sqsize/2, sqsize - border);
+                        break;
+                    default:
+                        break;
+                }
+
+                int bsx = 0;
+                int bsy = 0;
+
+                if (option->state & State_Sunken) {
+                    bsx = pixelMetric(PM_ButtonShiftHorizontal);
+                    bsy = pixelMetric(PM_ButtonShiftVertical);
+                }
+
+                QRect bounds = a.boundingRect();
+                int sx = sqsize / 2 - bounds.center().x() - 1;
+                int sy = sqsize / 2 - bounds.center().y() - 1;
+                imagePainter.translate(sx + bsx, sy + bsy);
+                imagePainter.setPen(option->palette.buttonText().color());
+                imagePainter.setBrush(option->palette.buttonText());
+
+                if (!(option->state & State_Enabled)) {
+                    imagePainter.translate(1, 1);
+                    imagePainter.setBrush(option->palette.light().color());
+                    imagePainter.setPen(option->palette.light().color());
+                    imagePainter.drawPolygon(a);
+                    imagePainter.translate(-1, -1);
+                    imagePainter.setBrush(option->palette.mid().color());
+                    imagePainter.setPen(option->palette.mid().color());
+                }
+
+                imagePainter.drawPolygon(a);
+                imagePainter.end();
+                pixmap = QPixmap::fromImage(image);
+                QPixmapCache::insert(pixmapName, pixmap);
+            }
+            int xOffset = r.x() + (r.width() - size)/2;
+            int yOffset = r.y() + (r.height() - size)/2;
+            painter->drawPixmap(xOffset, yOffset, pixmap);
+        }
+        break;
 
     default:
         d->style->drawPrimitive(element, option, painter, widget);
@@ -902,7 +988,7 @@ void ManhattanStyle::drawComplexControl(ComplexControl control, const QStyleOpti
                 newBtn.palette = panelPalette(option->palette);
                 newBtn.rect = QRect(ir.right() - arrowSize - 1,
                                     ir.height() - arrowSize - 2, arrowSize, arrowSize);
-                QWindowsStyle::drawPrimitive(PE_IndicatorArrowDown, &newBtn, painter, widget);
+                drawPrimitive(PE_IndicatorArrowDown, &newBtn, painter, widget);
             }
         }
         break;
@@ -929,7 +1015,7 @@ void ManhattanStyle::drawComplexControl(ComplexControl control, const QStyleOpti
             pal.setBrush(QPalette::All, QPalette::ButtonText, StyleHelper::panelTextColor());
             arrowOpt.palette = pal;
 
-            QWindowsStyle::drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, painter, widget);
+            drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, painter, widget);
 
             painter->restore();
         }
diff --git a/src/plugins/projectexplorer/images/filtericon.png b/src/plugins/projectexplorer/images/filtericon.png
index 0915b5e5f6167dfb71799f637ac2ba67f3be7deb..de7ee4b5f54f0db14e3137c0d9d97283f388a9f1 100644
Binary files a/src/plugins/projectexplorer/images/filtericon.png and b/src/plugins/projectexplorer/images/filtericon.png differ