diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index cab0f62cc630d99163c132f7839e661d6dcc1d62..8289e416fc64055ccf332a2164fb13f2b7174290 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -467,6 +467,37 @@ void AttachRemoteParameters::clear()
     attachTarget.clear();
 }
 
+
+///////////////////////////////////////////////////////////////////////
+//
+// DummyEngine
+//
+///////////////////////////////////////////////////////////////////////
+
+class DummyEngine : public DebuggerEngine
+{
+    Q_OBJECT
+
+public:
+    DummyEngine() : DebuggerEngine(DebuggerStartParameters()) {}
+    virtual ~DummyEngine() {}
+
+    virtual void setupEngine() {}
+    virtual void setupInferior() {}
+    virtual void runEngine() {}
+    virtual void shutdownEngine() {}
+    virtual void shutdownInferior() {}
+    virtual void executeDebuggerCommand(const QString &) {}
+    virtual unsigned debuggerCapabilities() const { return 0; }
+};
+
+static DebuggerEngine *dummyEngine()
+{
+    static DummyEngine dummy;
+    return &dummy;
+}
+
+
 ///////////////////////////////////////////////////////////////////////
 //
 // DebugMode
@@ -2463,30 +2494,10 @@ void DebuggerPluginPrivate::startDebugger(RunControl *rc)
 }
 
 
-class DummyEngine : public DebuggerEngine
-{
-    Q_OBJECT
-
-public:
-    DummyEngine() : DebuggerEngine(DebuggerStartParameters()) {}
-    virtual ~DummyEngine() {}
-
-    virtual void setupEngine() {}
-    virtual void setupInferior() {}
-    virtual void runEngine() {}
-    virtual void shutdownEngine() {}
-    virtual void shutdownInferior() {}
-    virtual void executeDebuggerCommand(const QString &) {}
-    virtual unsigned debuggerCapabilities() const { return 0; }
-};
-
-
 void DebuggerPluginPrivate::connectEngine(DebuggerEngine *engine)
 {
-    static DummyEngine dummyEngine;
-
     if (!engine)
-        engine = &dummyEngine;
+        engine = dummyEngine();
 
     if (m_currentEngine == engine)
         return;
@@ -2914,7 +2925,7 @@ void DebuggerPluginPrivate::activateDebugMode()
 void DebuggerPluginPrivate::sessionLoaded()
 {
     m_breakHandler->loadSessionData();
-    WatchHandler::loadSessionData();
+    dummyEngine()->watchHandler()->loadSessionData();
     synchronizeWatchers();
 }
 
@@ -2931,7 +2942,7 @@ void DebuggerPluginPrivate::aboutToUnloadSession()
 
 void DebuggerPluginPrivate::aboutToSaveSession()
 {
-    WatchHandler::saveSessionData();
+    dummyEngine()->watchHandler()->loadSessionData();
     m_breakHandler->saveSessionData();
 }
 
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index d88296c864a89773c3fc45bd76869da72dcf0b27..13d024ae307afa5510c713c4731b851f8b3ea73c 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -1492,10 +1492,10 @@ void WatchHandler::updateWatchers()
 
 void WatchHandler::loadWatchers()
 {
+    m_watcherNames.clear();
     QVariant value = debuggerCore()->sessionValue("Watchers");
     foreach (const QString &exp, value.toStringList())
-        m_watcherNames[exp.toLatin1()] = watcherCounter++;
-
+        watchExpression(exp);
     //qDebug() << "LOAD WATCHERS: " << m_watchers;
 }
 
diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h
index 2b5f8bcc76b98f42bf6cd68a322ac190cae44cf5..cfdc9fc0cbd9318eabfda4f0421b4fe2fee8227c 100644
--- a/src/plugins/debugger/watchhandler.h
+++ b/src/plugins/debugger/watchhandler.h
@@ -155,8 +155,8 @@ public:
     const WatchData *findItem(const QByteArray &iname) const;
     QModelIndex itemIndex(const QByteArray &iname) const;
 
-    static void loadSessionData();
-    static void saveSessionData();
+    void loadSessionData();
+    void saveSessionData();
     void removeTooltip();
 
     bool isExpandedIName(const QByteArray &iname) const
@@ -182,8 +182,8 @@ public:
 private:
     friend class WatchModel;
 
-    static void loadWatchers();
-    static void saveWatchers();
+    void loadWatchers();
+    void saveWatchers();
     static void loadTypeFormats();
     static void saveTypeFormats();