diff --git a/src/plugins/debugger/cdb/cdbdebugengine.h b/src/plugins/debugger/cdb/cdbdebugengine.h
index 04185c05bb44894bbe95a57c0afd7997352ef780..74547ab33adb43f5700e6aff18f62d080b3fc3f2 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.h
+++ b/src/plugins/debugger/cdb/cdbdebugengine.h
@@ -94,6 +94,7 @@ public:
 
     virtual void reloadRegisters();
     virtual void reloadSourceFiles();
+    virtual void reloadFullStack() {}
 
 protected:
     void timerEvent(QTimerEvent*);
diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index b9879aaacac00571ca33d5b7e37e943a1ccb5b75..23cc84059d2cfa2534435c1b3f668bfd02fd0caf 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -206,6 +206,10 @@ void DebuggerManager::init()
     stackView->setModel(m_stackHandler->stackModel());
     connect(stackView, SIGNAL(frameActivated(int)),
         this, SLOT(activateFrame(int)));
+    connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()),
+        this, SLOT(reloadFullStack()));
+    connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()),
+        this, SLOT(reloadFullStack()));
 
     // Threads
     m_threadsHandler = new ThreadsHandler;
@@ -273,9 +277,8 @@ void DebuggerManager::init()
     m_registerHandler = new RegisterHandler;
     registerView->setModel(m_registerHandler->model());
 
-    m_watchHandler = new WatchHandler;
-
     // Locals
+    m_watchHandler = new WatchHandler;
     QTreeView *localsView = qobject_cast<QTreeView *>(m_localsWindow);
     localsView->setModel(m_watchHandler->model());
 
@@ -1539,6 +1542,12 @@ DebuggerStartMode DebuggerManager::startMode() const
     return m_runControl->startMode();
 }
 
+void DebuggerManager::reloadFullStack()
+{
+    if (m_engine)
+        m_engine->reloadFullStack();
+}
+
 
 //////////////////////////////////////////////////////////////////////
 //
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 1d9e97d03686a1610c124db5464cd04e7dc22a2d..38a0c5d7b748bd4c0af3bd41f56a1a18601afe34 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -279,6 +279,7 @@ private slots:
     void setStatus(int status);
     void clearStatusMessage();
     void attemptBreakpointSynchronization();
+    void reloadFullStack();
 
 private:
     //
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 272a9e076a6a4794c1e83e5aa7f471f8f1351f7c..f7d6071c7ee1cdcb0e769274d104374bcbf5920c 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -158,17 +158,13 @@ void GdbEngine::initializeConnections()
         q, SLOT(showApplicationOutput(QString)),
         Qt::QueuedConnection);
 
+    // FIXME: These trigger even if the engine is not active
     connect(theDebuggerAction(UseDebuggingHelpers), SIGNAL(valueChanged(QVariant)),
         this, SLOT(setUseDebuggingHelpers(QVariant)));
     connect(theDebuggerAction(DebugDebuggingHelpers), SIGNAL(valueChanged(QVariant)),
         this, SLOT(setDebugDebuggingHelpers(QVariant)));
     connect(theDebuggerAction(RecheckDebuggingHelpers), SIGNAL(triggered()),
         this, SLOT(recheckDebuggingHelperAvailability()));
-
-    connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()),
-        this, SLOT(reloadFullStack()));
-    connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()),
-        this, SLOT(reloadFullStack()));
 }
 
 void GdbEngine::initializeVariables()
diff --git a/src/plugins/debugger/idebuggerengine.h b/src/plugins/debugger/idebuggerengine.h
index cf700c208776aefb6bb0153c07b9ab3d7e9e79b4..ececbe9aa7a74c65a91481c072677f878998b0e9 100644
--- a/src/plugins/debugger/idebuggerengine.h
+++ b/src/plugins/debugger/idebuggerengine.h
@@ -84,6 +84,7 @@ public:
     virtual void reloadRegisters() = 0;
 
     virtual void reloadSourceFiles() = 0;
+    virtual void reloadFullStack() = 0;
 };
 
 } // namespace Internal
diff --git a/src/plugins/debugger/scriptengine.h b/src/plugins/debugger/scriptengine.h
index 79568aca88fb46a28a72723e2ddf58cd6454e205..1e116b390150ff2cd180c816333ed65b908676fe 100644
--- a/src/plugins/debugger/scriptengine.h
+++ b/src/plugins/debugger/scriptengine.h
@@ -104,6 +104,7 @@ private:
     void reloadModules();
     void reloadRegisters() {}
     void reloadSourceFiles() {}
+    void reloadFullStack() {}
 
     bool supportsThreads() const { return true; }
     void maybeBreakNow(bool byFunction);