diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp
index a72f637e1d4f245adcbc8e4322457a346228b407..7e580484b4736a447263b32ca92bae7fad03a357 100644
--- a/src/plugins/coreplugin/sidebar.cpp
+++ b/src/plugins/coreplugin/sidebar.cpp
@@ -107,6 +107,14 @@ SideBarWidget *SideBar::insertSideBarWidget(int position, const QString &title)
     return item;
 }
 
+void SideBar::removeSideBarWidget(SideBarWidget *widget)
+{
+    widget->removeCurrentItem();
+    m_widgets.removeOne(widget);
+    widget->hide();
+    widget->deleteLater();
+}
+
 void SideBar::split()
 {
     SideBarWidget *original = qobject_cast<SideBarWidget*>(sender());
@@ -121,10 +129,7 @@ void SideBar::close()
         SideBarWidget *widget = qobject_cast<SideBarWidget*>(sender());
         if (!widget)
             return;
-        widget->removeCurrentItem();
-        m_widgets.removeOne(widget);
-        widget->hide();
-        widget->deleteLater();
+        removeSideBarWidget(widget);
         updateWidgets();
     }
 }
@@ -148,6 +153,9 @@ void SideBar::saveSettings(QSettings *settings)
 
 void SideBar::readSettings(QSettings *settings)
 {
+    foreach (SideBarWidget *widget, m_widgets)
+        removeSideBarWidget(widget);
+
     if (settings->contains("HelpSideBar/Views")) {
         QStringList views = settings->value("HelpSideBar/Views").toStringList();
         if (views.count()) {
diff --git a/src/plugins/coreplugin/sidebar.h b/src/plugins/coreplugin/sidebar.h
index 0a023be100f12d68d423a20e16b7777df2419842..bd6f1e1c260d9325c0f9671524ebd784d8c9f491 100644
--- a/src/plugins/coreplugin/sidebar.h
+++ b/src/plugins/coreplugin/sidebar.h
@@ -31,6 +31,7 @@
 #define SIDEBAR_H
 
 #include <QtCore/QMap>
+#include <QtCore/QPointer>
 #include <QtGui/QWidget>
 #include <QtGui/QComboBox>
 
@@ -117,6 +118,8 @@ private slots:
 private:
     Internal::SideBarWidget *insertSideBarWidget(int position,
                                                  const QString &title = QString());
+    void removeSideBarWidget(Internal::SideBarWidget *widget);
+
     QList<Internal::SideBarWidget*> m_widgets;
 
     QMap<QString, SideBarItem*> m_itemMap;