diff --git a/src/plugins/coreplugin/core.qrc b/src/plugins/coreplugin/core.qrc
index 3157c4f10ef463b4711828e75ef67b30b7051ae8..3af6f1c15b5fb0d0cbbba656fff74b103eaa93f0 100644
--- a/src/plugins/coreplugin/core.qrc
+++ b/src/plugins/coreplugin/core.qrc
@@ -65,5 +65,11 @@
         <file>images/category_qml.png</file>
         <file>images/filtericon.png</file>
         <file>images/category_buildrun.png</file>
+        <file>images/button_close.png</file>
+        <file>images/splitbutton_closebottom.png</file>
+        <file>images/splitbutton_closeleft.png</file>
+        <file>images/splitbutton_closeright.png</file>
+        <file>images/splitbutton_closetop.png</file>
+        <file>images/splitbutton_vertical.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index 88d3af79c6a19df97feddcb043398af63048e056..904d6478e7cdc09079f8c1aa85d4fe918e21662c 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -181,31 +181,37 @@ const char G_WINDOW_OTHER[]        = "QtCreator.Group.Window.Other";
 const char G_HELP_HELP[]           = "QtCreator.Group.Help.Help";
 const char G_HELP_ABOUT[]          = "QtCreator.Group.Help.About";
 
-const char ICON_MINUS[]            = ":/core/images/minus.png";
-const char ICON_PLUS[]             = ":/core/images/plus.png";
-const char ICON_NEWFILE[]          = ":/core/images/filenew.png";
-const char ICON_OPENFILE[]         = ":/core/images/fileopen.png";
-const char ICON_SAVEFILE[]         = ":/core/images/filesave.png";
-const char ICON_UNDO[]             = ":/core/images/undo.png";
-const char ICON_REDO[]             = ":/core/images/redo.png";
-const char ICON_COPY[]             = ":/core/images/editcopy.png";
-const char ICON_PASTE[]            = ":/core/images/editpaste.png";
-const char ICON_CUT[]              = ":/core/images/editcut.png";
-const char ICON_NEXT[]             = ":/core/images/next.png";
-const char ICON_PREV[]             = ":/core/images/prev.png";
-const char ICON_DIR[]              = ":/core/images/dir.png";
-const char ICON_CLEAN_PANE[]       = ":/core/images/clean_pane_small.png";
-const char ICON_CLEAR[]            = ":/core/images/clear.png";
-const char ICON_RESET[]            = ":/core/images/reset.png";
-const char ICON_MAGNIFIER[]        = ":/core/images/magnifier.png";
-const char ICON_TOGGLE_SIDEBAR[]   = ":/core/images/sidebaricon.png";
-const char ICON_CLOSE[]            = ":/core/images/closebutton.png";
-const char ICON_CLOSE_DARK[]       = ":/core/images/darkclosebutton.png";
-const char ICON_SPLIT_HORIZONTAL[] = ":/core/images/splitbutton_horizontal.png";
-const char ICON_FILTER[]           = ":/core/images/filtericon.png";
-const char ICON_LINK[]             = ":/core/images/linkicon.png";
-const char ICON_QTLOGO_32[]        = ":/core/images/logo/32/qtcreator.png";
-const char ICON_QTLOGO_128[]       = ":/core/images/logo/128/qtcreator.png";
+const char ICON_MINUS[]              = ":/core/images/minus.png";
+const char ICON_PLUS[]               = ":/core/images/plus.png";
+const char ICON_NEWFILE[]            = ":/core/images/filenew.png";
+const char ICON_OPENFILE[]           = ":/core/images/fileopen.png";
+const char ICON_SAVEFILE[]           = ":/core/images/filesave.png";
+const char ICON_UNDO[]               = ":/core/images/undo.png";
+const char ICON_REDO[]               = ":/core/images/redo.png";
+const char ICON_COPY[]               = ":/core/images/editcopy.png";
+const char ICON_PASTE[]              = ":/core/images/editpaste.png";
+const char ICON_CUT[]                = ":/core/images/editcut.png";
+const char ICON_NEXT[]               = ":/core/images/next.png";
+const char ICON_PREV[]               = ":/core/images/prev.png";
+const char ICON_DIR[]                = ":/core/images/dir.png";
+const char ICON_CLEAN_PANE[]         = ":/core/images/clean_pane_small.png";
+const char ICON_CLEAR[]              = ":/core/images/clear.png";
+const char ICON_RESET[]              = ":/core/images/reset.png";
+const char ICON_MAGNIFIER[]          = ":/core/images/magnifier.png";
+const char ICON_TOGGLE_SIDEBAR[]     = ":/core/images/sidebaricon.png";
+const char ICON_CLOSE_DOCUMENT[]     = ":/core/images/button_close.png";
+const char ICON_CLOSE[]              = ":/core/images/closebutton.png";
+const char ICON_CLOSE_DARK[]         = ":/core/images/darkclosebutton.png";
+const char ICON_SPLIT_HORIZONTAL[]   = ":/core/images/splitbutton_horizontal.png";
+const char ICON_SPLIT_VERTICAL[]     = ":/core/images/splitbutton_vertical.png";
+const char ICON_CLOSE_SPLIT_TOP[]    = ":/core/images/splitbutton_closetop.png";
+const char ICON_CLOSE_SPLIT_BOTTOM[] = ":/core/images/splitbutton_closebottom.png";
+const char ICON_CLOSE_SPLIT_LEFT[]   = ":/core/images/splitbutton_closeleft.png";
+const char ICON_CLOSE_SPLIT_RIGHT[]  = ":/core/images/splitbutton_closeright.png";
+const char ICON_FILTER[]             = ":/core/images/filtericon.png";
+const char ICON_LINK[]               = ":/core/images/linkicon.png";
+const char ICON_QTLOGO_32[]          = ":/core/images/logo/32/qtcreator.png";
+const char ICON_QTLOGO_128[]         = ":/core/images/logo/128/qtcreator.png";
 
 const char WIZARD_CATEGORY_QT[] = "R.Qt";
 const char WIZARD_TR_CATEGORY_QT[] = QT_TRANSLATE_NOOP("Core", "Qt");
diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp
index 0eadf2f1fa96881871b9787561e60f3598a4e83c..2ffbc9a270b79856ace51907b649128a76b80238 100644
--- a/src/plugins/coreplugin/editormanager/editorview.cpp
+++ b/src/plugins/coreplugin/editormanager/editorview.cpp
@@ -175,6 +175,11 @@ void EditorView::setCloseSplitEnabled(bool enable)
     m_toolBar->setCloseSplitEnabled(enable);
 }
 
+void EditorView::setCloseSplitIcon(const QIcon &icon)
+{
+    m_toolBar->setCloseSplitIcon(icon);
+}
+
 void EditorView::addEditor(IEditor *editor)
 {
     if (m_editors.contains(editor))
@@ -686,6 +691,14 @@ void SplitterOrView::split(Qt::Orientation orientation)
     otherView->view()->copyNavigationHistoryFrom(m_view);
     otherView->view()->setCurrentEditor(otherView->view()->currentEditor());
 
+    if (orientation == Qt::Horizontal) {
+        view->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_LEFT)));
+        otherView->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_RIGHT)));
+    } else {
+        view->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_TOP)));
+        otherView->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_BOTTOM)));
+    }
+
     if (m_view && !m_isRoot) {
         em->emptyView(m_view);
         delete m_view;
@@ -750,6 +763,20 @@ void SplitterOrView::unsplit()
         } else {
             m_view = childSplitterOrView->takeView();
             m_layout->addWidget(m_view);
+            QSplitter *parentSplitter = qobject_cast<QSplitter *>(parentWidget());
+            if (parentSplitter) { // not the toplevel splitterOrView
+                if (parentSplitter->orientation() == Qt::Horizontal) {
+                    if (parentSplitter->widget(0) == this)
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_LEFT));
+                    else
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_RIGHT));
+                } else {
+                    if (parentSplitter->widget(0) == this)
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_TOP));
+                    else
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_BOTTOM));
+                }
+            }
         }
         m_layout->setCurrentWidget(m_view);
     }
diff --git a/src/plugins/coreplugin/editormanager/editorview.h b/src/plugins/coreplugin/editormanager/editorview.h
index 6106002dad00351f08859ab1f55941908abef3c5..2ae6b04aafdc886fa9e8698715b9ae4515ec1976 100644
--- a/src/plugins/coreplugin/editormanager/editorview.h
+++ b/src/plugins/coreplugin/editormanager/editorview.h
@@ -38,19 +38,21 @@
 #include <QtCore/QMap>
 #include <QtCore/QList>
 #include <QtCore/QString>
-#include <QtGui/QWidget>
 #include <QtCore/QPointer>
 #include <QtCore/QVariant>
 
+#include <QtGui/QIcon>
+#include <QtGui/QWidget>
+
 QT_BEGIN_NAMESPACE
+class QAction;
 class QComboBox;
-class QToolButton;
+class QFrame;
 class QLabel;
-class QStackedWidget;
 class QSplitter;
 class QStackedLayout;
-class QAction;
-class QFrame;
+class QStackedWidget;
+class QToolButton;
 QT_END_NAMESPACE
 
 namespace Core {
@@ -94,6 +96,7 @@ public:
                            QObject *object, const char *member);
     void hideEditorStatusBar(const QString &id);
     void setCloseSplitEnabled(bool enable);
+    void setCloseSplitIcon(const QIcon &icon);
 
 private slots:
     void closeView();
diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp
index 1aeb7c6ad5726021df028673fead313f59a2ada7..9c77a61305c1a3808cc37cd999eab12a6e95d872 100644
--- a/src/plugins/coreplugin/editortoolbar.cpp
+++ b/src/plugins/coreplugin/editortoolbar.cpp
@@ -103,7 +103,7 @@ EditorToolBarPrivate::EditorToolBarPrivate(QWidget *parent, EditorToolBar *q) :
     m_goForwardAction(new QAction(QIcon(QLatin1String(Constants::ICON_NEXT)), EditorManager::tr("Go Forward"), parent)),
     m_splitButton(new QToolButton),
     m_horizontalSplitAction(new QAction(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)), EditorManager::tr("Split"), parent)),
-    m_verticalSplitAction(new QAction(EditorManager::tr("Split Side by Side"), parent)),
+    m_verticalSplitAction(new QAction(QIcon(QLatin1String(Constants::ICON_SPLIT_VERTICAL)), EditorManager::tr("Split Side by Side"), parent)),
     m_closeSplitButton(new QToolButton),
     m_activeToolBar(0),
     m_toolBarPlaceholder(new QWidget),
@@ -141,13 +141,11 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
     d->m_editorList->setModel(d->m_editorsListModel);
     d->m_editorList->setMaxVisibleItems(40);
     d->m_editorList->setContextMenuPolicy(Qt::CustomContextMenu);
-    d->m_editorList->setProperty("hideborder", true);
 
     d->m_closeEditorButton->setAutoRaise(true);
-    d->m_closeEditorButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    d->m_closeEditorButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_DOCUMENT)));
     d->m_closeEditorButton->setToolTip(tr("Close Document"));
     d->m_closeEditorButton->setEnabled(false);
-    d->m_closeEditorButton->setProperty("showborder", true);
 
     d->m_toolBarPlaceholder->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
 
@@ -165,13 +163,14 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
     d->m_splitButton->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)));
     d->m_splitButton->setToolTip(tr("Split"));
     d->m_splitButton->setPopupMode(QToolButton::InstantPopup);
+    d->m_splitButton->setProperty("noArrow", true);
     QMenu *splitMenu = new QMenu(d->m_splitButton);
     splitMenu->addAction(d->m_horizontalSplitAction);
     splitMenu->addAction(d->m_verticalSplitAction);
     d->m_splitButton->setMenu(splitMenu);
 
     d->m_closeSplitButton->setAutoRaise(true);
-    d->m_closeSplitButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    d->m_closeSplitButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_BOTTOM)));
     d->m_closeSplitButton->setToolTip(tr("Remove Split"));
 
     QHBoxLayout *toplayout = new QHBoxLayout(this);
@@ -181,10 +180,10 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
     toplayout->addWidget(d->m_forwardButton);
     toplayout->addWidget(d->m_lockButton);
     toplayout->addWidget(d->m_editorList);
-    toplayout->addWidget(d->m_closeEditorButton);
     toplayout->addWidget(d->m_toolBarPlaceholder, 1); // Custom toolbar stretches
     toplayout->addWidget(d->m_splitButton);
     toplayout->addWidget(d->m_closeSplitButton);
+    toplayout->addWidget(d->m_closeEditorButton);
 
     setLayout(toplayout);
 
@@ -240,6 +239,11 @@ void EditorToolBar::setCloseSplitEnabled(bool enable)
     d->m_closeSplitButton->setVisible(enable);
 }
 
+void EditorToolBar::setCloseSplitIcon(const QIcon &icon)
+{
+    d->m_closeSplitButton->setIcon(icon);
+}
+
 void EditorToolBar::closeEditor()
 {
     if (!currentEditor())
diff --git a/src/plugins/coreplugin/editortoolbar.h b/src/plugins/coreplugin/editortoolbar.h
index c432e1662bdad0fa2fdf0383d46a96151d3baebc..b0164d496a41bd4971de56de25f7324f02f60fc1 100644
--- a/src/plugins/coreplugin/editortoolbar.h
+++ b/src/plugins/coreplugin/editortoolbar.h
@@ -37,6 +37,8 @@
 
 #include <utils/styledbar.h>
 
+#include <QtGui/QIcon>
+
 namespace Core {
 class IEditor;
 
@@ -79,6 +81,7 @@ public:
     void setCanGoForward(bool canGoForward);
     void removeToolbarForEditor(IEditor *editor);
     void setCloseSplitEnabled(bool enable);
+    void setCloseSplitIcon(const QIcon &icon);
 
 public slots:
     void updateEditorStatus(IEditor *editor);
diff --git a/src/plugins/coreplugin/images/button_close.png b/src/plugins/coreplugin/images/button_close.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6d37fd18c5350c8746c4874eabbf5cc304e4cf1
Binary files /dev/null and b/src/plugins/coreplugin/images/button_close.png differ
diff --git a/src/plugins/coreplugin/images/filtericon.png b/src/plugins/coreplugin/images/filtericon.png
index 3fae2defdecc62af31371f25c2e94ff7e509163e..76a833690ba8201afb37f20b2fde4e5abeb8df9e 100644
Binary files a/src/plugins/coreplugin/images/filtericon.png and b/src/plugins/coreplugin/images/filtericon.png differ
diff --git a/src/plugins/coreplugin/images/linkicon.png b/src/plugins/coreplugin/images/linkicon.png
index 4e4d4f7b7fbac77c23076501afd79910395a5fce..786c8d65ba995e2a8c8d591a3151f66b16400565 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_closebottom.png b/src/plugins/coreplugin/images/splitbutton_closebottom.png
new file mode 100644
index 0000000000000000000000000000000000000000..08a7dda4754f69ff03d7adf1ae28b1aa9077b080
Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closebottom.png differ
diff --git a/src/plugins/coreplugin/images/splitbutton_closeleft.png b/src/plugins/coreplugin/images/splitbutton_closeleft.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c3a2321eb4d3db54451a7f0f16965574125e1f1
Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closeleft.png differ
diff --git a/src/plugins/coreplugin/images/splitbutton_closeright.png b/src/plugins/coreplugin/images/splitbutton_closeright.png
new file mode 100644
index 0000000000000000000000000000000000000000..91e62e9358c7d3ed6a9b8b62c124c6f35e265dfc
Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closeright.png differ
diff --git a/src/plugins/coreplugin/images/splitbutton_closetop.png b/src/plugins/coreplugin/images/splitbutton_closetop.png
new file mode 100644
index 0000000000000000000000000000000000000000..a76b91dcd9483224441ae4b5ff4b50a30e97cd07
Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closetop.png differ
diff --git a/src/plugins/coreplugin/images/splitbutton_horizontal.png b/src/plugins/coreplugin/images/splitbutton_horizontal.png
index c85a093f2c3250786c13994bef3910d19824d650..de424460c45e100245028b7654773a63442417d1 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/images/splitbutton_vertical.png b/src/plugins/coreplugin/images/splitbutton_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f78506cf0d07f635c0a834204194d06110687c7
Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_vertical.png differ
diff --git a/src/plugins/coreplugin/navigationsubwidget.cpp b/src/plugins/coreplugin/navigationsubwidget.cpp
index 8181190976cab67171c84f5cc2f7b7b07cd977d8..88fcb65ef4500d58435e389af3a7fff18922e26e 100644
--- a/src/plugins/coreplugin/navigationsubwidget.cpp
+++ b/src/plugins/coreplugin/navigationsubwidget.cpp
@@ -88,7 +88,7 @@ NavigationSubWidget::NavigationSubWidget(NavigationWidget *parentWidget, int pos
     splitAction->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)));
     splitAction->setToolTip(tr("Split"));
     QToolButton *close = new QToolButton();
-    close->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    close->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_TOP)));
     close->setToolTip(tr("Close"));
 
     toolBarLayout->addWidget(splitAction);
diff --git a/src/plugins/coreplugin/sidebarwidget.cpp b/src/plugins/coreplugin/sidebarwidget.cpp
index 5671a151a41b71726f057245d54921f6b68762f4..93f8b5ca47111ba05aaadb9d02ee78eaf4e27a06 100644
--- a/src/plugins/coreplugin/sidebarwidget.cpp
+++ b/src/plugins/coreplugin/sidebarwidget.cpp
@@ -83,7 +83,7 @@ SideBarWidget::SideBarWidget(SideBar *sideBar, const QString &id)
 
     QAction *closeAction = new QAction(tr("Close"), m_toolbar);
     closeAction->setToolTip(tr("Close"));
-    closeAction->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    closeAction->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_TOP)));
     connect(closeAction, SIGNAL(triggered()), this, SIGNAL(closeMe()));
     m_toolbar->addAction(closeAction);
 
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 1916a0bb2295fa6655136572001078b3a9242780..5bfd80952f54c2c5838932005a3127fee18d8cad 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -427,6 +427,7 @@ Core::NavigationView ProjectTreeWidgetFactory::createWidget()
     filter->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER)));
     filter->setToolTip(tr("Filter Tree"));
     filter->setPopupMode(QToolButton::InstantPopup);
+    filter->setProperty("noArrow", true);
     QMenu *filterMenu = new QMenu(filter);
     filterMenu->addAction(ptw->m_filterProjectsAction);
     filterMenu->addAction(ptw->m_filterGeneratedFilesAction);
diff --git a/src/plugins/texteditor/outlinefactory.cpp b/src/plugins/texteditor/outlinefactory.cpp
index 85ef0e4aa779ab303c4eeeb95c330b44e19f8893..1af5354e0c96de362f073e87e268b4c8ffb15aee 100644
--- a/src/plugins/texteditor/outlinefactory.cpp
+++ b/src/plugins/texteditor/outlinefactory.cpp
@@ -72,6 +72,7 @@ OutlineWidgetStack::OutlineWidgetStack(OutlineFactory *factory) :
     m_filterButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER)));
     m_filterButton->setToolTip(tr("Filter tree"));
     m_filterButton->setPopupMode(QToolButton::InstantPopup);
+    m_filterButton->setProperty("noArrow", true);
     m_filterMenu = new QMenu(m_filterButton);
     m_filterButton->setMenu(m_filterMenu);