diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp
index 91b89f59a7b677ea12b84541743d85c19646af23..1d92e59d39eac88e9f082979bad5c03d92ac7243 100644
--- a/src/plugins/debugger/breakwindow.cpp
+++ b/src/plugins/debugger/breakwindow.cpp
@@ -29,6 +29,7 @@
 
 #include "breakwindow.h"
 
+#include "debuggeractions.h"
 #include "ui_breakcondition.h"
 
 #include <QAction>
@@ -93,7 +94,7 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev)
     QAction *act3 = new QAction("Edit condition...", &menu);
     act0->setEnabled(index.isValid());
     QAction *act4 = new QAction("Syncronize breakpoints", &menu);
-    QAction *act5 = new QAction("Debugger properties...", &menu);
+    QAction *act5 = action(SettingsDialog);
 
     menu.addAction(act0);
     menu.addAction(act3);
@@ -116,7 +117,7 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev)
     else if (act == act4)
         emit breakpointSynchronizationRequested();
     else if (act == act5)
-        emit settingsDialogRequested();
+        act->trigger();
 }
 
 void BreakWindow::deleteBreakpoint(const QModelIndex &idx)
diff --git a/src/plugins/debugger/breakwindow.h b/src/plugins/debugger/breakwindow.h
index f6bd9111b9bda38d9f297773781d812544d95468..8b8b9cdd8baf273ed976dddf23094adacddad70a 100644
--- a/src/plugins/debugger/breakwindow.h
+++ b/src/plugins/debugger/breakwindow.h
@@ -50,7 +50,6 @@ signals:
     void breakpointDeleted(int index);
     void breakpointActivated(int index);
     void breakpointSynchronizationRequested();
-    void settingsDialogRequested();
 
 private slots:
     void rowActivated(const QModelIndex &index);
diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp
index f4befbc1329dc6239c405cdc334c6faaf2be00e5..efaa12d2b98a8e6b6c8d0a32966d6bced247bf11 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.cpp
+++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp
@@ -987,15 +987,6 @@ void CdbDebugEnginePrivate::handleBreakpointEvent(PDEBUG_BREAKPOINT pBP)
         qDebug() << Q_FUNC_INFO;
 }
 
-void CdbDebugEngine::setDebugDumpers(bool on)
-{
-    Q_UNUSED(on)
-}
-
-void CdbDebugEngine::recheckCustomDumperAvailability()
-{
-}
-
 void CdbDebugEngine::reloadSourceFiles()
 {
 }
diff --git a/src/plugins/debugger/cdb/cdbdebugengine.h b/src/plugins/debugger/cdb/cdbdebugengine.h
index 8e67a66a7914fd73704145b97f707684cead4a41..59ebeed571efb3145d10240490d6226d9021a626 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.h
+++ b/src/plugins/debugger/cdb/cdbdebugengine.h
@@ -89,10 +89,6 @@ public:
     virtual void loadAllSymbols();
 
     virtual void reloadRegisters();
-
-    virtual void setDebugDumpers(bool on);
-    virtual void recheckCustomDumperAvailability();
-
     virtual void reloadSourceFiles();
 
 protected:
diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index 2c83c78f3733da0b3a0d630120a38530717f6fe1..8dcef6b53a96a60472df29b70fa44ef1ff6d58d1 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -239,8 +239,6 @@ void DebuggerManager::init()
         m_breakHandler, SLOT(activateBreakpoint(int)));
     connect(breakView, SIGNAL(breakpointDeleted(int)),
         m_breakHandler, SLOT(removeBreakpoint(int)));
-    connect(breakView, SIGNAL(settingsDialogRequested()),
-        this, SIGNAL(settingsDialogRequested()));
     connect(breakView, SIGNAL(breakpointSynchronizationRequested()),
         this, SLOT(attemptBreakpointSynchronization()));
     connect(m_breakHandler, SIGNAL(gotoLocation(QString,int,bool)),
@@ -295,10 +293,6 @@ void DebuggerManager::init()
         this, SLOT(assignValueInDebugger(QString,QString)));
     connect(localsView, SIGNAL(requestWatchExpression(QString)),
         this, SLOT(watchExpression(QString)));
-    connect(localsView, SIGNAL(settingsDialogRequested()),
-        this, SIGNAL(settingsDialogRequested()));
-    connect(localsView, SIGNAL(requestRecheckCustomDumperAvailability()),
-        this, SLOT(recheckCustomDumperAvailability()));
 
     // Watchers 
     QTreeView *watchersView = qobject_cast<QTreeView *>(m_watchersWindow);
@@ -317,10 +311,6 @@ void DebuggerManager::init()
         this, SIGNAL(sessionValueRequested(QString,QVariant*)));
     connect(m_watchHandler, SIGNAL(setSessionValueRequested(QString,QVariant)),
         this, SIGNAL(setSessionValueRequested(QString,QVariant)));
-    connect(watchersView, SIGNAL(settingsDialogRequested()),
-        this, SIGNAL(settingsDialogRequested()));
-    connect(watchersView, SIGNAL(requestRecheckCustomDumperAvailability()),
-        this, SLOT(recheckCustomDumperAvailability()));
 
     // Tooltip
     QTreeView *tooltipView = qobject_cast<QTreeView *>(m_tooltipWindow);
@@ -480,6 +470,8 @@ void DebuggerManager::init()
 
     connect(action(UseDumpers), SIGNAL(triggered(bool)),
         this, SLOT(setUseDumpers(bool)));
+    connect(action(DebugDumpers), SIGNAL(triggered(bool)),
+        this, SLOT(setDebugDumpers(bool)));
 }
 
 void DebuggerManager::setDebuggerType(DebuggerType type)
@@ -1311,7 +1303,6 @@ void DebuggerManager::setDebugDumpers(bool on)
 {
     QTC_ASSERT(m_engine, return);
     m_settings.m_debugDumpers = on;
-    m_engine->setDebugDumpers(on);
 }
 
 void DebuggerManager::setSkipKnownFrames(bool on)
@@ -1424,17 +1415,6 @@ void DebuggerManager::fileOpen(const QString &fileName)
 }
 
 
-//////////////////////////////////////////////////////////////////////
-//
-// Watch specific stuff
-//
-//////////////////////////////////////////////////////////////////////
-
-void DebuggerManager::recheckCustomDumperAvailability()
-{
-    m_engine->recheckCustomDumperAvailability();
-}
-
 //////////////////////////////////////////////////////////////////////
 //
 // Disassembler specific stuff
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 919c977ce133349cba5f8efb9803419baa5ae7d1..419f3cb64de57ddba6b6208d0fb4f6dab1ce0bfe 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -284,10 +284,10 @@ public slots:
 
     void showStatusMessage(const QString &msg, int timeout = -1); // -1 forever
 
-    void setDebugDumpers(bool on);
     void setSkipKnownFrames(bool on);
 
 private slots:
+    void setDebugDumpers(bool on);
     void setUseDumpers(bool on);
     void showDebuggerOutput(const QString &prefix, const QString &msg);
     void showDebuggerInput(const QString &prefix, const QString &msg);
@@ -309,7 +309,6 @@ private slots:
     void setStatus(int status);
     void clearStatusMessage();
     void attemptBreakpointSynchronization();
-    void recheckCustomDumperAvailability();
 
 private:
     //
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 655fd9cd081b15196279a5fc06936ad79a19b637..1e4e1a70df53ae988cd16d74b5bb7027a37bdfb2 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -287,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_useDumpers);
+    m_ui.checkBoxUseDumpers->setChecked(m_settings.m_useDumpers);
     m_ui.checkBoxUseToolTips->setChecked(m_settings.m_useToolTips);
 
     connect(m_ui.radioButtonSelectedPluginBreakpoints, SIGNAL(toggled(bool)),
@@ -310,8 +310,8 @@ 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)),
-        action(UseDumpers), SLOT(trigger(bool)));
+    connect(m_ui.checkBoxUseDumpers, SIGNAL(clicked()),
+        action(UseDumpers), SLOT(trigger()));
 
     return w;
 }
@@ -325,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_useDumpers = m_ui.checkBoxUseCustomDumpers->isChecked();
+    m_settings.m_useDumpers = m_ui.checkBoxUseDumpers->isChecked();
     m_settings.m_useToolTips = m_ui.checkBoxUseToolTips->isChecked();
 
     m_settings.m_pluginAllBreakpoints =
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index b6a545c15b1b60d30d8875deea224fc34e72eb20..aafc019fd5601c32dee530b6b1b05876caf407f4 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -287,6 +287,10 @@ void GdbEngine::initializeConnections()
 
     connect(action(UseDumpers), SIGNAL(triggered(bool)),
         this, SLOT(setUseDumpers(bool)));
+    connect(action(DebugDumpers), SIGNAL(triggered(bool)),
+        this, SLOT(setDebugDumpers(bool)));
+    connect(action(RecheckDumpers), SIGNAL(triggered()),
+        this, SLOT(recheckCustomDumperAvailability()));
 }
 
 void GdbEngine::initializeVariables()
diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h
index 5fc72ccc6702a9556570d221e633f831caa612ff..d0186493972a9ab1d7d32fe81fbb8fe3c22e2c60 100644
--- a/src/plugins/debugger/gdbengine.h
+++ b/src/plugins/debugger/gdbengine.h
@@ -130,7 +130,7 @@ private:
     void loadSymbols(const QString &moduleName);
     void loadAllSymbols();
 
-    void setDebugDumpers(bool on);
+    Q_SLOT void setDebugDumpers(bool on);
     Q_SLOT void setUseDumpers(bool on);
 
     //
diff --git a/src/plugins/debugger/gdboptionpage.ui b/src/plugins/debugger/gdboptionpage.ui
index 46ab3dc8212bf3b6b8f38e44818e1c48f69e2d9c..5305559947592bd264d3e5730f5da9968a8fc055 100644
--- a/src/plugins/debugger/gdboptionpage.ui
+++ b/src/plugins/debugger/gdboptionpage.ui
@@ -132,7 +132,7 @@
     </widget>
    </item>
    <item row="2" column="0">
-    <widget class="QCheckBox" name="checkBoxUseCustomDumpers">
+    <widget class="QCheckBox" name="checkBoxUseDumpers">
      <property name="toolTip">
       <string>Checking this will make the debugger try to use code to format certain data (QObject, QString, std::string etc.) nicely.</string>
      </property>
diff --git a/src/plugins/debugger/idebuggerengine.h b/src/plugins/debugger/idebuggerengine.h
index de7bece9ca1a16d5d4280b40ba18aecb59d04bc0..2bb44f8e47bd851695d0a844c90ebd97d3e74a61 100644
--- a/src/plugins/debugger/idebuggerengine.h
+++ b/src/plugins/debugger/idebuggerengine.h
@@ -81,8 +81,6 @@ public:
     virtual void loadAllSymbols() = 0;
 
     virtual void reloadRegisters() = 0;
-    virtual void setDebugDumpers(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 f18750818cbc253ab49fa51a687159cf152361cd..e42e8d63a9325b0a6de29a27efd8eeedda8af2f7 100644
--- a/src/plugins/debugger/scriptengine.h
+++ b/src/plugins/debugger/scriptengine.h
@@ -97,9 +97,6 @@ private:
     void loadSessionData() {}
     void saveSessionData() {}
 
-    void setDebugDumpers(bool) {}
-    void recheckCustomDumperAvailability() {}
-
     void assignValueInDebugger(const QString &expr, const QString &value);
     void executeDebuggerCommand(const QString & command);
 
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index 824c032d71d036629392e14d7fe5ecb16389e972..4f8c4fed5f73b4529df5103629527516173ccd47 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -106,9 +106,9 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
     act2->setChecked(m_alwaysResizeColumnsToContents);
     QAction *act3 = 0;
     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);
+    QAction *act5 = action(RecheckDumpers);
+    QAction *act6 = action(UseDumpers);
+    QAction *act7 = action(SettingsDialog);
 
     menu.addAction(act1);
     menu.addAction(act2);
@@ -134,9 +134,10 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
         // FIXME: menu.addAction(act4);
     }
     menu.addSeparator();
+    menu.addAction(act5);
     menu.addAction(act6);
+    menu.addSeparator();
     menu.addAction(act7);
-    menu.addAction(act5);
 
     QAction *act = menu.exec(ev->globalPos());
 
@@ -153,10 +154,8 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
             emit requestRemoveWatchExpression(exp);
     else if (act == act4)
         model()->setData(mi0, !visual, VisualRole);
-    else if (act == act5)
-        emit settingsDialogRequested();
-    else if (act == act6)
-        emit requestRecheckCustomDumperAvailability();
+    else 
+        act->trigger();
 }
 
 void WatchWindow::resizeColumnsToContents()
diff --git a/src/plugins/debugger/watchwindow.h b/src/plugins/debugger/watchwindow.h
index 27a622494ef4d7d10e8ec654d56f51ff1020e47d..db1718f0348d484180bf1fcc28cfb2e9867594c0 100644
--- a/src/plugins/debugger/watchwindow.h
+++ b/src/plugins/debugger/watchwindow.h
@@ -63,8 +63,6 @@ signals:
     void requestAssignValue(const QString &exp, const QString &value);
     void requestExpandChildren(const QModelIndex &idx);
     void requestCollapseChildren(const QModelIndex &idx);
-    void requestRecheckCustomDumperAvailability();
-    void settingsDialogRequested();
 
 private slots:
     void handleChangedItem(QWidget *);