diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 515cbb52ab51936c139079e22906010785b46767..46f857926b7d6fbca0622feb26e8d426adabdf95 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -1293,8 +1293,7 @@ void DebuggerEngine::notifyInferiorExited()
     }
     setState(InferiorShutdownRequested);
     setState(InferiorShutdownOk);
-    showMessage(_("QUEUE: SHUTDOWN ENGINE"));
-    QTimer::singleShot(0, d, SLOT(doShutdownEngine()));
+    d->queueShutdownEngine();
 }
 
 void DebuggerEngine::setState(DebuggerState state, bool forced)
diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
index 598bbde92e1d38ec79072cccd6f9c79db7a1436c..e4f83f1523ab3daa9debd5d5226527d2d06c8ee6 100644
--- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
+++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
@@ -171,7 +171,6 @@ void RemoteGdbServerAdapter::setupInferior()
     }
 
     m_engine->postCommand("set target-async on", CB(handleSetTargetAsync));
-    QString x = startParameters().executable;
     QFileInfo fi(startParameters().executable);
     QString fileName = fi.absoluteFilePath();
     m_engine->postCommand("-file-exec-and-symbols \""
@@ -210,7 +209,6 @@ void RemoteGdbServerAdapter::handleTargetRemote(const GdbResponse &record)
 {
     QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
     if (record.resultClass == GdbResultDone) {
-        m_engine->notifyInferiorStopOk();
         // gdb server will stop the remote application itself.
         showMessage(_("INFERIOR STARTED"));
         showMessage(msgAttachedToStoppedInferior(), StatusBar);
@@ -225,6 +223,8 @@ void RemoteGdbServerAdapter::handleTargetRemote(const GdbResponse &record)
 
 void RemoteGdbServerAdapter::runEngine()
 {
+    m_engine->notifyEngineRunAndInferiorStopOk();
+    m_engine->notifyInferiorRunRequested();
     m_engine->continueInferiorInternal();
 }