diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp
index 7869dd7897adfa3180510930adfcac69e5225c32..a61dbc7278488637b11296f47d25522d406e9f6b 100644
--- a/src/plugins/debugger/qml/qmlcppengine.cpp
+++ b/src/plugins/debugger/qml/qmlcppengine.cpp
@@ -449,7 +449,7 @@ void QmlCppEngine::finishDebugger()
 
 void QmlCppEngine::setupSlaveEngineOnTimer()
 {
-    QTimer::singleShot(ConnectionWaitTimeMs, this, SLOT(setupSlaveEngine()));
+    QTimer::singleShot(0, this, SLOT(setupSlaveEngine()));
 }
 
 void QmlCppEngine::setupSlaveEngine()
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index e36883e1226284242bedabb38c88821c78161836..8a0e3805cd2e0c34a392db953a377cfc6bb5e48b 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -260,9 +260,13 @@ void QmlEngine::shutdownInferiorAsSlave()
     if (state() == InferiorRunOk) {
         setState(InferiorStopRequested);
         setState(InferiorStopOk);
+        setState(InferiorShutdownRequested);
+        setState(InferiorShutdownOk);
+    } else {
+        // force
+        setState(InferiorShutdownRequested, true);
+        setState(InferiorShutdownOk);
     }
-    setState(InferiorShutdownRequested);
-    setState(InferiorShutdownOk);
 }
 
 void QmlEngine::shutdownEngineAsSlave()