diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp
index 81a36f03c581742e94d56a49a034d7828978671d..f4befbc1329dc6239c405cdc334c6faaf2be00e5 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.cpp
+++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp
@@ -992,11 +992,6 @@ void CdbDebugEngine::setDebugDumpers(bool on)
     Q_UNUSED(on)
 }
 
-void CdbDebugEngine::setUseCustomDumpers(bool on)
-{
-    Q_UNUSED(on)
-}
-
 void CdbDebugEngine::recheckCustomDumperAvailability()
 {
 }
diff --git a/src/plugins/debugger/cdb/cdbdebugengine.h b/src/plugins/debugger/cdb/cdbdebugengine.h
index 4bfc1f1bda243508fc6d77aa3d7f62c3c8ba41b3..8e67a66a7914fd73704145b97f707684cead4a41 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.h
+++ b/src/plugins/debugger/cdb/cdbdebugengine.h
@@ -91,7 +91,6 @@ public:
     virtual void reloadRegisters();
 
     virtual void setDebugDumpers(bool on);
-    virtual void setUseCustomDumpers(bool on);
     virtual void recheckCustomDumperAvailability();
 
     virtual void reloadSourceFiles();
diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro
index 58f345b2021bcfbdcb827d2e9679648863d643f4..6818736d57aee0451906e54e2609258d6e887670 100644
--- a/src/plugins/debugger/debugger.pro
+++ b/src/plugins/debugger/debugger.pro
@@ -17,6 +17,7 @@ QT += gui network script
 HEADERS += \
     breakhandler.h \
     breakwindow.h \
+    debuggeractions.h \
     debuggerconstants.h \
     debuggerdialogs.h \
     debuggermanager.h \
@@ -47,6 +48,7 @@ SOURCES += \
     breakhandler.cpp \
     breakwindow.cpp \
     breakwindow.h \
+    debuggeractions.cpp \
     debuggerdialogs.cpp \
     debuggermanager.cpp \
     debuggeroutputwindow.cpp \
diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index eb14caf254f8a9b9fb5f10a71b554a9fae769e4e..2c83c78f3733da0b3a0d630120a38530717f6fe1 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -29,6 +29,7 @@
 
 #include "debuggermanager.h"
 
+#include "debuggeractions.h"
 #include "debuggerconstants.h"
 #include "idebuggerengine.h"
 
@@ -94,7 +95,7 @@ DebuggerSettings::DebuggerSettings()
     m_skipKnownFrames = false;
     m_debugDumpers = false;
     m_useToolTips = false;
-    m_useCustomDumpers = true;
+    m_useDumpers = true;
     m_listSourceFiles = false;
 }
 
@@ -108,7 +109,7 @@ QString DebuggerSettings::dump()
         << "  gdbEnv: " << m_gdbEnv 
         << "  autoRun: " << m_autoRun
         << "  autoQuit: " << m_autoQuit
-        << "  useCustomDumpers: " << m_useCustomDumpers
+        << "  useCustomDumpers: " << m_useDumpers
         << "  skipKnownFrames: " << m_skipKnownFrames
         << "  debugDumpers: " << m_debugDumpers
         << "  useToolTips: " << m_useToolTips
@@ -476,6 +477,9 @@ void DebuggerManager::init()
     setDebuggerType(GdbDebugger);
     if (Debugger::Constants::Internal::debug)
         qDebug() << Q_FUNC_INFO << gdbEngine << winEngine << scriptEngine;
+
+    connect(action(UseDumpers), SIGNAL(triggered(bool)),
+        this, SLOT(setUseDumpers(bool)));
 }
 
 void DebuggerManager::setDebuggerType(DebuggerType type)
@@ -1292,16 +1296,15 @@ bool DebuggerManager::debugDumpers() const
     return m_settings.m_debugDumpers;
 }
 
-bool DebuggerManager::useCustomDumpers() const
+bool DebuggerManager::useDumpers() const
 {
-    return m_settings.m_useCustomDumpers;
+    return m_settings.m_useDumpers;
 }
 
-void DebuggerManager::setUseCustomDumpers(bool on)
+void DebuggerManager::setUseDumpers(bool on)
 {
     QTC_ASSERT(m_engine, return);
-    m_settings.m_useCustomDumpers = on;
-    m_engine->setUseCustomDumpers(on);
+    m_settings.m_useDumpers = on;
 }
 
 void DebuggerManager::setDebugDumpers(bool on)
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 59e10513c788ff1fea906e7e63ed220990258a89..919c977ce133349cba5f8efb9803419baa5ae7d1 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -162,7 +162,7 @@ private:
     virtual void showApplicationOutput(const QString &data) = 0;
     virtual bool skipKnownFrames() const = 0;
     virtual bool debugDumpers() const = 0;
-    virtual bool useCustomDumpers() const = 0;
+    virtual bool useDumpers() const = 0;
     
     virtual bool wantsSourceFileList() const = 0;
     virtual bool wantsAllPluginBreakpoints() const = 0;
@@ -193,7 +193,7 @@ public:
     bool m_autoRun;
     bool m_autoQuit;
 
-    bool m_useCustomDumpers;
+    bool m_useDumpers;
     bool m_skipKnownFrames;
     bool m_debugDumpers;
     bool m_useToolTips;
@@ -284,11 +284,11 @@ public slots:
 
     void showStatusMessage(const QString &msg, int timeout = -1); // -1 forever
 
-    void setUseCustomDumpers(bool on);
     void setDebugDumpers(bool on);
     void setSkipKnownFrames(bool on);
 
 private slots:
+    void setUseDumpers(bool on);
     void showDebuggerOutput(const QString &prefix, const QString &msg);
     void showDebuggerInput(const QString &prefix, const QString &msg);
     void showApplicationOutput(const QString &data);
@@ -326,7 +326,7 @@ private:
 
     bool skipKnownFrames() const;
     bool debugDumpers() const;
-    bool useCustomDumpers() const;
+    bool useDumpers() const;
     bool wantsSourceFileList() const
         { return m_settings.m_listSourceFiles; }
     bool wantsAllPluginBreakpoints() const
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 171eb911ae9065e1e615cb4faf73bab5df9146e0..655fd9cd081b15196279a5fc06936ad79a19b637 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -29,6 +29,7 @@
 
 #include "debuggerplugin.h"
 
+#include "debuggeractions.h"
 #include "debuggerconstants.h"
 #include "debuggermanager.h"
 #include "debuggerrunner.h"
@@ -286,7 +287,7 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
     m_ui.checkBoxListSourceFiles->setChecked(m_settings.m_listSourceFiles);
     m_ui.checkBoxSkipKnownFrames->setChecked(m_settings.m_skipKnownFrames);
     m_ui.checkBoxDebugDumpers->setChecked(m_settings.m_debugDumpers);
-    m_ui.checkBoxUseCustomDumpers->setChecked(m_settings.m_useCustomDumpers);
+    m_ui.checkBoxUseCustomDumpers->setChecked(m_settings.m_useDumpers);
     m_ui.checkBoxUseToolTips->setChecked(m_settings.m_useToolTips);
 
     connect(m_ui.radioButtonSelectedPluginBreakpoints, SIGNAL(toggled(bool)),
@@ -310,7 +311,7 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
     //m_dumpLogAction->setText(tr("Dump Log File for Debugging Purposes"));
     //
     connect(m_ui.checkBoxUseCustomDumpers, SIGNAL(clicked(bool)),
-        m_plugin->m_manager, SLOT(setUseCustomDumpers(bool)));
+        action(UseDumpers), SLOT(trigger(bool)));
 
     return w;
 }
@@ -324,7 +325,7 @@ void GdbOptionPage::apply()
     m_settings.m_skipKnownFrames = m_ui.checkBoxSkipKnownFrames->isChecked();
     m_settings.m_listSourceFiles = m_ui.checkBoxListSourceFiles->isChecked();
     m_settings.m_debugDumpers = m_ui.checkBoxDebugDumpers->isChecked();
-    m_settings.m_useCustomDumpers = m_ui.checkBoxUseCustomDumpers->isChecked();
+    m_settings.m_useDumpers = m_ui.checkBoxUseCustomDumpers->isChecked();
     m_settings.m_useToolTips = m_ui.checkBoxUseToolTips->isChecked();
 
     m_settings.m_pluginAllBreakpoints =
@@ -908,7 +909,7 @@ void DebuggerPlugin::writeSettings() const
     s->setValue("AutoQuit", m->m_autoQuit);
 
     s->setValue("UseToolTips", m->m_useToolTips);
-    s->setValue("UseCustomDumpers", m->m_useCustomDumpers);
+    s->setValue("UseCustomDumpers", m->m_useDumpers);
     s->setValue("ListSourceFiles", m->m_listSourceFiles);
     s->setValue("SkipKnowFrames", m->m_skipKnownFrames);
     s->setValue("DebugDumpers", m->m_debugDumpers);
@@ -946,7 +947,7 @@ void DebuggerPlugin::readSettings()
 
     m->m_skipKnownFrames  = s->value("SkipKnownFrames", false).toBool();
     m->m_debugDumpers     = s->value("DebugDumpers", false).toBool();
-    m->m_useCustomDumpers = s->value("UseCustomDumpers", true).toBool();
+    m->m_useDumpers       = s->value("UseCustomDumpers", true).toBool();
     m->m_useToolTips      = s->value("UseToolTips", false).toBool();
     m->m_listSourceFiles  = s->value("ListSourceFiles", false).toBool();
 
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 8fbd3a9ca83a84b257476d37becd8a766464b2cc..b6a545c15b1b60d30d8875deea224fc34e72eb20 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -29,6 +29,7 @@
 
 #include "gdbengine.h"
 
+#include "debuggeractions.h"
 #include "debuggerconstants.h"
 #include "debuggermanager.h"
 #include "gdbmi.h"
@@ -283,6 +284,9 @@ void GdbEngine::initializeConnections()
     connect(this, SIGNAL(applicationOutputAvailable(QString)),
         q, SLOT(showApplicationOutput(QString)),
         Qt::QueuedConnection);
+
+    connect(action(UseDumpers), SIGNAL(triggered(bool)),
+        this, SLOT(setUseDumpers(bool)));
 }
 
 void GdbEngine::initializeVariables()
@@ -3073,9 +3077,9 @@ static QString sizeofTypeExpression(const QString &type)
     return "sizeof(" + gdbQuoteTypes(type) + ")";
 }
 
-void GdbEngine::setUseCustomDumpers(bool on)
+void GdbEngine::setUseDumpers(bool on)
 {
-    //qDebug() << "SWITCHING ON/OFF DUMPER DEBUGGING:" << on;
+    qDebug() << "SWITCHING ON/OFF DUMPER DEBUGGING:" << on;
     Q_UNUSED(on);
     // FIXME: a bit too harsh, but otherwise the treeview sometimes look funny
     //m_expandedINames.clear();
@@ -3086,7 +3090,7 @@ void GdbEngine::setUseCustomDumpers(bool on)
 bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const
 {
     DebuggerSettings *s = q->settings();
-    if (!s->m_useCustomDumpers)
+    if (!s->m_useDumpers)
         return false;
 
     if (q->startMode() == AttachCore) {
diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h
index 3a62620ecfc9fccd879b277485af9d75a906d14f..5fc72ccc6702a9556570d221e633f831caa612ff 100644
--- a/src/plugins/debugger/gdbengine.h
+++ b/src/plugins/debugger/gdbengine.h
@@ -131,7 +131,7 @@ private:
     void loadAllSymbols();
 
     void setDebugDumpers(bool on);
-    void setUseCustomDumpers(bool on);
+    Q_SLOT void setUseDumpers(bool on);
 
     //
     // Own stuff
diff --git a/src/plugins/debugger/idebuggerengine.h b/src/plugins/debugger/idebuggerengine.h
index d4087422d088d2c053bcf6e1fadaa4c10d80f869..de7bece9ca1a16d5d4280b40ba18aecb59d04bc0 100644
--- a/src/plugins/debugger/idebuggerengine.h
+++ b/src/plugins/debugger/idebuggerengine.h
@@ -82,7 +82,6 @@ public:
 
     virtual void reloadRegisters() = 0;
     virtual void setDebugDumpers(bool on) = 0;
-    virtual void setUseCustomDumpers(bool on) = 0;
     virtual void recheckCustomDumperAvailability() = 0;
 
     virtual void reloadSourceFiles() = 0;
diff --git a/src/plugins/debugger/scriptengine.h b/src/plugins/debugger/scriptengine.h
index 11ea1b1fce2a016317dfa9d532aec6520ff05515..f18750818cbc253ab49fa51a687159cf152361cd 100644
--- a/src/plugins/debugger/scriptengine.h
+++ b/src/plugins/debugger/scriptengine.h
@@ -98,7 +98,6 @@ private:
     void saveSessionData() {}
 
     void setDebugDumpers(bool) {}
-    void setUseCustomDumpers(bool) {}
     void recheckCustomDumperAvailability() {}
 
     void assignValueInDebugger(const QString &expr, const QString &value);
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index a3df668cb60ea15c366e005429ecac80eb679e17..824c032d71d036629392e14d7fe5ecb16389e972 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -29,6 +29,8 @@
 
 #include "watchwindow.h"
 
+#include "debuggeractions.h"
+
 #include <QtCore/QDebug>
 #include <QtCore/QTimer>
 
@@ -106,6 +108,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
     QAction *act4 = 0;
     QAction *act5 = new QAction("Debugger properties...", &menu);
     QAction *act6 = new QAction("Re-check availability of custom dumpers", &menu);
+    QAction *act7 = action(UseDumpers);
 
     menu.addAction(act1);
     menu.addAction(act2);
@@ -132,6 +135,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
     }
     menu.addSeparator();
     menu.addAction(act6);
+    menu.addAction(act7);
     menu.addAction(act5);
 
     QAction *act = menu.exec(ev->globalPos());