diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp
index 510d22b7e68f6f4e72731d094b2cb55a98fc483e..8912bb884828c21d68b27daebf75ed9fbe024630 100644
--- a/src/plugins/debugger/gdb/classicgdbengine.cpp
+++ b/src/plugins/debugger/gdb/classicgdbengine.cpp
@@ -695,9 +695,11 @@ static bool parseConsoleStream(const GdbResponse &response, GdbMi *contents)
     return contents->isValid();
 }
 
-void GdbEngine::updateLocalsClassic(const QVariant &cookie)
+void GdbEngine::updateLocalsClassic()
 {
     PRECONDITION;
+    m_pendingWatchRequests = 0;
+    m_pendingBreakpointRequests = 0;
     m_processedNames.clear();
 
     if (0 && debugPending)
@@ -713,7 +715,7 @@ void GdbEngine::updateLocalsClassic(const QVariant &cookie)
         CB(handleStackListArgumentsClassic));
     // '2' is 'list with type and value'
     postCommand("-stack-list-locals 2", WatchUpdate,
-        CB(handleStackListLocalsClassic), cookie); // stage 2/2
+        CB(handleStackListLocalsClassic)); // stage 2/2
 }
 
 static inline QString msgRetrievingWatchData(int pending)
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 1d8ece3d0e44e8e1d74acb72ffddf4ef7f8a7027..ee26f799d668d13d13924f810cc19e34a4fa1d83 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -3628,16 +3628,15 @@ bool GdbEngine::setToolTipExpression(const QPoint &mousePos,
         qDebug() << "GdbEngine::setToolTipExpression2 " << exp << (*m_toolTipContext);
 
     if (isSynchronous()) {
-        updateLocals(QVariant());
-        return true;
+        updateLocalsPython(true, tooltipIName(exp));
+    } else {
+        WatchData toolTip;
+        toolTip.exp = exp.toLatin1();
+        toolTip.name = exp;
+        toolTip.iname = tooltipIName(exp);
+        watchHandler()->removeData(toolTip.iname);
+        watchHandler()->insertData(toolTip);
     }
-
-    WatchData toolTip;
-    toolTip.exp = exp.toLatin1();
-    toolTip.name = exp;
-    toolTip.iname = tooltipIName(exp);
-    watchHandler()->removeData(toolTip.iname);
-    watchHandler()->insertData(toolTip);
     return true;
 }
 
@@ -3715,10 +3714,7 @@ void GdbEngine::updateWatchData(const WatchData &data, const WatchUpdateFlags &f
                 && m_pendingWatchRequests == 0
                 && m_pendingBreakpointRequests == 0;
 
-        if (tryPartial)
-            updateLocalsPython(true, data.iname);
-        else
-            updateLocals();
+        updateLocalsPython(tryPartial, data.iname);
 #endif
     } else {
         // Bump requests to avoid model rebuilding during the nested
@@ -3846,14 +3842,12 @@ void GdbEngine::handleDebuggingHelperSetup(const GdbResponse &response)
     }
 }
 
-void GdbEngine::updateLocals(const QVariant &cookie)
+void GdbEngine::updateLocals()
 {
-    m_pendingWatchRequests = 0;
-    m_pendingBreakpointRequests = 0;
     if (hasPython())
         updateLocalsPython(false, QByteArray());
     else
-        updateLocalsClassic(cookie);
+        updateLocalsClassic();
 }
 
 // Parse a local variable from GdbMi.
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index c0ae53fabbbd3d7eead121b759f2686daebed33e..6e4666f8452d4fd9797c247aa5559d49b18b4a53 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -644,8 +644,8 @@ private: ////////// View & Data Stuff //////////
     Q_SLOT void createFullBacktrace();
     void handleCreateFullBacktrace(const GdbResponse &response);
 
-    void updateLocals(const QVariant &cookie = QVariant());
-        void updateLocalsClassic(const QVariant &cookie);
+    void updateLocals();
+        void updateLocalsClassic();
         void updateLocalsPython(bool tryPartial, const QByteArray &varList);
             void handleStackFramePython(const GdbResponse &response);
 
diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp
index b6adf5a129b43f00cb08ce58c82403f22844dc3d..99273e840df685cbbd93b5a3eeea86510def5c6d 100644
--- a/src/plugins/debugger/gdb/pythongdbengine.cpp
+++ b/src/plugins/debugger/gdb/pythongdbengine.cpp
@@ -54,6 +54,8 @@ namespace Internal {
 void GdbEngine::updateLocalsPython(bool tryPartial, const QByteArray &varList)
 {
     PRECONDITION;
+    m_pendingWatchRequests = 0;
+    m_pendingBreakpointRequests = 0;
     m_processedNames.clear();
     WatchHandler *handler = watchHandler();
     handler->beginCycle(!tryPartial);