diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index 780402ccd0eb291427ed48a573da0c0dcebc0513..3b49153d9cd9a9b9bbe320e4977a55e388f665cb 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -258,6 +258,8 @@ void DebuggerManager::init()
         this, SLOT(assignValueInDebugger(QString,QString)));
     connect(localsView, SIGNAL(requestWatchExpression(QString)),
         this, SLOT(watchExpression(QString)));
+    connect(localsView, SIGNAL(settingsDialogRequested()),
+        this, SIGNAL(settingsDialogRequested()));
 
     // Watchers 
     QTreeView *watchersView = qobject_cast<QTreeView *>(m_watchersWindow);
@@ -276,6 +278,8 @@ 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()));
 
     // Tooltip
     QTreeView *tooltipView = qobject_cast<QTreeView *>(m_tooltipWindow);
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 2f3cc9ddf21ff700afa6d5035f70433da704b3e3..54a2f93f778c5cecfdf216684f2e101b9c554ef7 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -371,6 +371,7 @@ signals:
     void configValueRequested(const QString &name, QVariant *value);
     void setConfigValueRequested(const QString &name, const QVariant &value);
     void applicationOutputAvailable(const QString &output);
+    void settingsDialogRequested();
 
 public:
     // FIXME: make private
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index d1f19f804c340b1ad4f5649590770b6256d3e1e9..47571bdcf47157857373b4bf2c61d709dab37b99 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -707,6 +707,9 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *error_mes
     connect(m_manager, SIGNAL(debugModeRequested()),
         this, SLOT(activateDebugMode()));
 
+    connect(m_manager, SIGNAL(settingsDialogRequested()),
+        this, SLOT(showSettingsDialog()));
+
     return true;
 }
 
@@ -963,6 +966,11 @@ void DebuggerPlugin::focusCurrentEditor(IMode *mode)
         editorManager->currentEditor()->widget()->setFocus();
 }
 
+void DebuggerPlugin::showSettingsDialog()
+{
+    Core::ICore::instance()->showOptionsDialog("Debugger", "Gdb");
+}
+
 #include "debuggerplugin.moc"
 
 Q_EXPORT_PLUGIN(DebuggerPlugin)
diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h
index 3fda92a84564877cbfbf47e90b12ca8c2e1fd1f8..5714bf9dcf602255d601e0e41d7f1f60e6cb608a 100644
--- a/src/plugins/debugger/debuggerplugin.h
+++ b/src/plugins/debugger/debuggerplugin.h
@@ -93,6 +93,7 @@ private slots:
 
     void breakpointMarginActionTriggered();
     void focusCurrentEditor(Core::IMode *mode);
+    void showSettingsDialog();
 
 private:
     void readSettings();
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index 4acdb1aca7f7f308003dfd8b09de19314f2cbed8..285b7d5e91a3fa77b36ae69bc030e394be460940 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -102,12 +102,13 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
     QAction *act2 = new QAction("Always adjust column widths to contents", &menu);
     act2->setCheckable(true);
     act2->setChecked(m_alwaysResizeColumnsToContents);
+    QAction *act3 = 0;
+    QAction *act4 = 0;
+    QAction *act5 = new QAction("Debugger properties...", &menu);
 
     menu.addAction(act1);
     menu.addAction(act2);
 
-    QAction *act3 = 0;
-    QAction *act4 = 0;
     QModelIndex idx = indexAt(ev->pos());
     QModelIndex mi0 = idx.sibling(idx.row(), 0);
     QString exp = model()->data(mi0).toString();
@@ -128,6 +129,8 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
         act4->setChecked(visual);
         // FIXME: menu.addAction(act4);
     }
+    menu.addSeparator();
+    menu.addAction(act5);
 
     QAction *act = menu.exec(ev->globalPos());
 
@@ -144,6 +147,8 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
             emit requestRemoveWatchExpression(exp);
     else if (act == act4)
         model()->setData(mi0, !visual, VisualRole);
+    else if (act == act5)
+        emit settingsDialogRequested();
 }
 
 void WatchWindow::resizeColumnsToContents()
diff --git a/src/plugins/debugger/watchwindow.h b/src/plugins/debugger/watchwindow.h
index db1718f0348d484180bf1fcc28cfb2e9867594c0..fa3126005b16802824f62ea3d047e03938fbdff0 100644
--- a/src/plugins/debugger/watchwindow.h
+++ b/src/plugins/debugger/watchwindow.h
@@ -63,6 +63,7 @@ signals:
     void requestAssignValue(const QString &exp, const QString &value);
     void requestExpandChildren(const QModelIndex &idx);
     void requestCollapseChildren(const QModelIndex &idx);
+    void settingsDialogRequested();
 
 private slots:
     void handleChangedItem(QWidget *);