diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp
index 4ec0e417a5ae2ee32278a9208187cb8c83f592ee..dbe23aab931b4a35a98969fa2f9ae80b6e7fb723 100644
--- a/src/plugins/debugger/qml/qmladapter.cpp
+++ b/src/plugins/debugger/qml/qmladapter.cpp
@@ -170,6 +170,7 @@ void QmlAdapter::clientStatusChanged(QDeclarativeDebugClient::Status status)
 
     if (status == QDeclarativeDebugClient::Enabled) {
         d->m_qmlClient = d->debugClients.value(serviceName);
+        d->m_qmlClient->connect();
         d->m_qmlClient->flushSendBuffer();
     }
 }
diff --git a/src/plugins/debugger/qml/qmldebuggerclient.h b/src/plugins/debugger/qml/qmldebuggerclient.h
index 93c05299e23b51f29770d99f902591239fe1f7c9..a7391f65b0e7db125ece1dfff6085c15e31f5f93 100644
--- a/src/plugins/debugger/qml/qmldebuggerclient.h
+++ b/src/plugins/debugger/qml/qmldebuggerclient.h
@@ -52,6 +52,9 @@ public:
     QmlDebuggerClient(QmlJsDebugClient::QDeclarativeDebugConnection* client, QLatin1String clientName);
     virtual ~QmlDebuggerClient();
 
+    virtual void connect() = 0;
+    virtual void disconnect() = 0;
+
     virtual void executeStep() = 0;
     virtual void executeStepOut() = 0;
     virtual void executeNext() = 0;
@@ -59,7 +62,6 @@ public:
 
     virtual void continueInferior() = 0;
     virtual void interruptInferior() = 0;
-    virtual void shutdownInferior() = 0;
 
     virtual void activateFrame(int index) = 0;
 
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 9ff95179ee480c6cd729b8b6c2f09108741398f1..0af34b1357503fdbe97df690ccd40eeefa50bce3 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -375,7 +375,7 @@ void QmlEngine::handleRemoteSetupFailed(const QString &message)
 
 void QmlEngine::shutdownInferior()
 {
-    d->m_adapter.activeDebuggerClient()->shutdownInferior();
+    d->m_adapter.activeDebuggerClient()->disconnect();
 
     if (isSlaveEngine()) {
         resetLocation();
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index 9c99a4fef33a8657dbfaec2ba1b580fff15a0760..2a6c4f5f33ce190a88d329490af83ea0735957c3 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -192,7 +192,19 @@ void QmlV8DebuggerClient::interruptInferior()
 
 }
 
-void QmlV8DebuggerClient::shutdownInferior()
+void QmlV8DebuggerClient::connect()
+{
+    QByteArray request;
+
+    JsonInputStream(request) << '{' << INITIALPARAMS ;
+    JsonInputStream(request) << ',' << "command" << ':' << "connect";
+
+    JsonInputStream(request) << '}';
+
+    sendMessage(packMessage(request));
+}
+
+void QmlV8DebuggerClient::disconnect()
 {
     QByteArray request;
 
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.h b/src/plugins/debugger/qml/qmlv8debuggerclient.h
index decb635b5fdfc177a39d55fb87712ebc2898ed82..b3ff37bd4e87b77eae523325dda9b2f8695e3e49 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.h
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.h
@@ -52,6 +52,9 @@ public:
     explicit QmlV8DebuggerClient(QmlJsDebugClient::QDeclarativeDebugConnection *client);
     ~QmlV8DebuggerClient();
 
+    void connect();
+    void disconnect();
+
     void executeStep();
     void executeStepOut();
     void executeNext();
@@ -59,7 +62,6 @@ public:
 
     void continueInferior();
     void interruptInferior();
-    void shutdownInferior();
 
     void activateFrame(int index);
 
diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
index 6246e2ce89114b999549de04c8df01486dda3f14..692fef36e76144da6da5694e49500d131e153f14 100644
--- a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
+++ b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
@@ -192,9 +192,12 @@ void QScriptDebuggerClient::interruptInferior()
     sendMessage(reply);
 }
 
-void QScriptDebuggerClient::shutdownInferior()
+void QScriptDebuggerClient::connect()
 {
+}
 
+void QScriptDebuggerClient::disconnect()
+{
 }
 
 void QScriptDebuggerClient::activateFrame(int index)
diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.h b/src/plugins/debugger/qml/qscriptdebuggerclient.h
index 9ebb93d4b7abf84a810e5260bd5a25e757094ed5..6723347f0165e9b8178dc6b3633e34b7269bc566 100644
--- a/src/plugins/debugger/qml/qscriptdebuggerclient.h
+++ b/src/plugins/debugger/qml/qscriptdebuggerclient.h
@@ -51,6 +51,9 @@ public:
     QScriptDebuggerClient(QmlJsDebugClient::QDeclarativeDebugConnection *client);
     ~QScriptDebuggerClient();
 
+    void connect();
+    void disconnect();
+
     void executeStep();
     void executeStepOut();
     void executeNext();
@@ -58,7 +61,6 @@ public:
 
     void continueInferior();
     void interruptInferior();
-    void shutdownInferior();
 
     void activateFrame(int index);