diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index 7b0e6c24273b37bf50216f8b1d113fa56396dec0..8180c7cfd106d0a41d3ce4dd5f2d8aa87c7358a8 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -888,7 +888,9 @@ void DebuggerManager::executeDebuggerCommand(const QString &command)
 
 void DebuggerManager::sessionLoaded()
 {
-    exitDebugger();
+    cleanupViews();
+    setStatus(DebuggerProcessNotReady);
+    setBusyCursor(false);
     loadSessionData();
 }
 
@@ -1092,6 +1094,28 @@ bool DebuggerManager::useFastStart() const
     return 0; // && m_settings.m_useFastStart;
 }
 
+void DebuggerManager::setUseCustomDumpers(bool on)
+{
+    m_settings.m_useCustomDumpers = on;
+    engine()->setUseCustomDumpers(on);
+}
+
+void DebuggerManager::setUseFastStart(bool on)
+{
+    m_settings.m_useFastStart = on;
+}
+
+void DebuggerManager::setDebugDumpers(bool on)
+{
+    m_settings.m_debugDumpers = on;
+    engine()->setDebugDumpers(on);
+}
+
+void DebuggerManager::setSkipKnownFrames(bool on)
+{
+    m_settings.m_skipKnownFrames = on;
+}
+
 void DebuggerManager::queryCurrentTextEditor(QString *fileName, int *lineNumber,
     QObject **object)
 {
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 5d5e7abd0da7f5e475fde605698004d4d4aa9cd0..493f2e8cb42685e57c1ccdd98d8c9498d0f6387f 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -167,8 +167,6 @@ private:
     virtual WatchHandler *watchHandler() = 0;
 
     virtual void showApplicationOutput(const QString &data) = 0;
-    //virtual QAction *useCustomDumpersAction() const = 0;
-    //virtual QAction *debugDumpersAction() const = 0;
     virtual bool skipKnownFrames() const = 0;
     virtual bool debugDumpers() const = 0;
     virtual bool useCustomDumpers() const = 0;
@@ -283,6 +281,12 @@ public slots:
 
     void showStatusMessage(const QString &msg, int timeout = -1); // -1 forever
 
+    void setUseCustomDumpers(bool on);
+    void setUseToolTips(bool on);
+    void setDebugDumpers(bool on);
+    void setSkipKnownFrames(bool on);
+    void setUseFastStart(bool on);
+
 private slots:
     void showDebuggerOutput(const QString &prefix, const QString &msg);
     void showDebuggerInput(const QString &prefix, const QString &msg);
@@ -312,9 +316,7 @@ private:
     StackHandler *stackHandler() { return m_stackHandler; }
     ThreadsHandler *threadsHandler() { return m_threadsHandler; }
     WatchHandler *watchHandler() { return m_watchHandler; }
-    //QAction *useCustomDumpersAction() const { return m_useCustomDumpersAction; }
-    //QAction *useToolTipsAction() const { return m_useToolTipsAction; }
-    //QAction *debugDumpersAction() const { return m_debugDumpersAction; }
+
     bool skipKnownFrames() const;
     bool debugDumpers() const;
     bool useCustomDumpers() const;
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 4f7e0b1a897d750d3270e60f598056aa8ffcc726..f8bb4a86b75e2c3a97fdee9752be967092b4106e 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -251,6 +251,7 @@ public:
     void finish() {} // automatically calls "apply"
 
 private:
+    friend class DebuggerPlugin;
     Ui::GdbOptionPage m_ui;
 
     DebuggerSettings m_settings;
@@ -300,6 +301,10 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
 
     //m_dumpLogAction = new QAction(this);
     //m_dumpLogAction->setText(tr("Dump Log File for Debugging Purposes"));
+    //
+    connect(m_ui.checkBoxUseCustomDumpers, SIGNAL(clicked(bool)),
+        m_plugin->m_manager, SLOT(setUseCustomDumpers(bool)));
+
     return w;
 }
 
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 4b84c88cb7f239946978bbff2db487de492a2cd0..cff7be0df07cb7c431cddcb5af6502ed7207b59e 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -1760,14 +1760,6 @@ void GdbEngine::setDebugDumpers(bool on)
     }
 }
 
-//QByteArray GdbEngine::dumperChannel() const
-//{
-//    return m_dumperServer->serverName().toLatin1();
-//    //QByteArray ba;
-//    //ba.setNum(m_dumperServer->serverPort());
-//    //return ba;
-//}
-
 
 //////////////////////////////////////////////////////////////////////
 //
@@ -2889,11 +2881,10 @@ static QString sizeofTypeExpression(const QString &type)
     return "sizeof(" + gdbQuoteTypes(type) + ")";
 }
 
-void GdbEngine::setCustomDumpersWanted(bool on)
+void GdbEngine::setUseCustomDumpers(bool on)
 {
     Q_UNUSED(on);
-    // FIXME: a bit too harsh, but otherwise the treeview
-    // sometimes look funny
+    // FIXME: a bit too harsh, but otherwise the treeview sometimes look funny
     //m_expandedINames.clear();
     updateLocals();
 }
diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h
index 60493a53e582233c19efbd7cd42e3b95f82cf17b..a603aee375dc5732cbd066b79fb06f97ef8f36b2 100644
--- a/src/plugins/debugger/gdbengine.h
+++ b/src/plugins/debugger/gdbengine.h
@@ -134,6 +134,9 @@ private:
     void loadSymbols(const QString &moduleName);
     void loadAllSymbols();
 
+    void setDebugDumpers(bool on);
+    void setUseCustomDumpers(bool on);
+
     //
     // Own stuff
     //
@@ -167,9 +170,6 @@ private:
     void updateLocals();
 
 private slots:
-    void setDebugDumpers(bool on);
-    void setCustomDumpersWanted(bool on);
-
     void handleResponse();
 
     void gdbProcError(QProcess::ProcessError error);
diff --git a/src/plugins/debugger/idebuggerengine.h b/src/plugins/debugger/idebuggerengine.h
index 50fbafda5593731781a1b273c5be506a3de38b2e..1558d140ee62ed6d4a467c15d24b0243a7e1d19e 100644
--- a/src/plugins/debugger/idebuggerengine.h
+++ b/src/plugins/debugger/idebuggerengine.h
@@ -86,6 +86,8 @@ public:
     virtual void loadAllSymbols() = 0;
 
     virtual void reloadRegisters() = 0;
+    virtual void setDebugDumpers(bool on) = 0;
+    virtual void setUseCustomDumpers(bool on) = 0;
 };
 
 } // namespace Internal
diff --git a/src/plugins/debugger/scriptengine.h b/src/plugins/debugger/scriptengine.h
index 0f7cc47ac1feafc66ee24a924064de345aa44c57..b7f37f2cc67b8a8372ec959e35c08dd219583cd3 100644
--- a/src/plugins/debugger/scriptengine.h
+++ b/src/plugins/debugger/scriptengine.h
@@ -101,6 +101,9 @@ private:
     void loadSessionData() {}
     void saveSessionData() {}
 
+    void setDebugDumpers(bool) {}
+    void setUseCustomDumpers(bool) {}
+
     void assignValueInDebugger(const QString &expr, const QString &value);
     void executeDebuggerCommand(const QString & command);