diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index d2e3db5c9cd1ef260966ac21e8988ed4a843dd5b..f12a6df68c3cd09177a9dec678ee1c9399d0fc75 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -843,10 +843,10 @@ void GdbEngine::handleResultRecord(const GdbResponse &response)
     // event loop is entered, and let individual commands have a flag to suppress
     // that behavior.
     if (m_commandsDoneCallback && m_cookieForToken.isEmpty()) {
+        debugMessage(_("ALL COMMANDS DONE; INVOKING CALLBACK"));
         CommandsDoneCallback cont = m_commandsDoneCallback;
         m_commandsDoneCallback = 0;
         (this->*cont)();
-        showStatusMessage(tr("Continuing after temporary stop."), 1000);
     } else {
         PENDING_DEBUG("MISSING TOKENS: " << m_cookieForToken.keys());
     }
@@ -1047,7 +1047,7 @@ void GdbEngine::handleAsyncOutput(const GdbMi &data)
         }
         showStatusMessage(tr("Processing queued commands."), 1000);
         QTC_ASSERT(m_commandsDoneCallback == 0, /**/);
-        m_commandsDoneCallback = &GdbEngine::continueInferior;
+        m_commandsDoneCallback = &GdbEngine::autoContinueInferior;
         return;
     }
 
@@ -1476,16 +1476,27 @@ void GdbEngine::startDebugger(const DebuggerStartParametersPtr &sp)
     m_gdbAdapter->startAdapter();
 }
 
-void GdbEngine::continueInferior()
+void GdbEngine::continueInferiorInternal()
 {
     QTC_ASSERT(state() == InferiorStopped, qDebug() << state());
     m_manager->resetLocation();
     setTokenBarrier();
     setState(InferiorRunningRequested);
-    showStatusMessage(tr("Running requested..."), 5000);
     postCommand(_("-exec-continue"), CB(handleExecContinue));
 }
 
+void GdbEngine::autoContinueInferior()
+{
+    continueInferiorInternal();
+    showStatusMessage(tr("Continuing after temporary stop..."), 1000);
+}
+
+void GdbEngine::continueInferior()
+{
+    continueInferiorInternal();
+    showStatusMessage(tr("Running requested..."), 5000);
+}
+
 void GdbEngine::stepExec()
 {
     QTC_ASSERT(state() == InferiorStopped, qDebug() << state());
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index 3df5bc46fa40bc2388186c94b2f356f0ab07880a..dc019ea5117cbd77084254edc8cb95711228ba56 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -115,6 +115,8 @@ private:
     void exitDebugger();
     void detachDebugger();
 
+    void continueInferiorInternal();
+    void autoContinueInferior();
     void continueInferior();
     void interruptInferior();