diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp
index 5055ce9f5432f1a27c489d313e5a7df4a5badee0..9a3be07871457f87d540d3d96a6d819245622a5f 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.cpp
+++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp
@@ -484,7 +484,7 @@ QWidget *ToolChainOptionsPage::createPage(QWidget *parent)
     horizontalLayout->addLayout(verticalLayout);
     horizontalLayout->addLayout(buttonLayout);
     Q_ASSERT(!m_model);
-    m_model = new ToolChainModel(verticalLayout);
+    m_model = new ToolChainModel(m_configWidget);
 
     connect(m_model, SIGNAL(toolChainStateChanged()), this, SLOT(updateState()));
 
@@ -548,14 +548,16 @@ void ToolChainOptionsPage::apply()
 
 void ToolChainOptionsPage::finish()
 {
-    if (m_model) {
-        m_model->deleteLater();
-        m_model = 0;
-    }
+    disconnect(ToolChainManager::instance(), SIGNAL(toolChainsChanged()),
+               this, SLOT(toolChainSelectionChanged()));
+
+    // delete by settingsdialog;
+    m_configWidget = 0;
 
-    m_configWidget = 0; // deleted by settingsdialog
-    m_selectionModel = 0; // child of m_configWidget
-    // childs of m_configWidget
+    // children of m_configWidget
+    m_model = 0;
+    m_container = 0;
+    m_selectionModel = 0;
     m_toolChainView = 0;
     m_addButton = 0;
     m_cloneButton = 0;