diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp
index a322b807f093828099e1d4e20e10ff93cba3eb30..615dd5aa294e2d727800361729a1078cf9409e12 100644
--- a/src/plugins/debugger/qml/qmladapter.cpp
+++ b/src/plugins/debugger/qml/qmladapter.cpp
@@ -99,7 +99,7 @@ bool QmlAdapter::connectToViewer()
     connect(m_conn, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
             SLOT(connectionStateChanged()));
     connect(m_conn, SIGNAL(error(QAbstractSocket::SocketError)),
-            SLOT(connectionErrorOccurred()));
+            SLOT(connectionErrorOccurred(QAbstractSocket::SocketError)));
 
     QString address = m_engine.data()->startParameters().qmlServerAddress;
     QString port = QString::number(m_engine.data()->startParameters().qmlServerPort);
@@ -114,14 +114,14 @@ bool QmlAdapter::connectToViewer()
     return true;
 }
 
-void QmlAdapter::connectionErrorOccurred()
+void QmlAdapter::connectionErrorOccurred(QAbstractSocket::SocketError socketError)
 {
     showConnectionErrorMessage(tr("Error: (%1) %2", "%1=error code, %2=error message")
                                 .arg(m_conn->error()).arg(m_conn->errorString()));
 
     // this is only an error if we are already connected and something goes wrong.
     if (isConnected())
-        emit connectionError();
+        emit connectionError(socketError);
 }
 
 void QmlAdapter::connectionStateChanged()
diff --git a/src/plugins/debugger/qml/qmladapter.h b/src/plugins/debugger/qml/qmladapter.h
index 0bed65885386ed329e4eedb88a55e0c4094fb93c..c27c6a48d16d3723d8b580a786f581c9177b1c1f 100644
--- a/src/plugins/debugger/qml/qmladapter.h
+++ b/src/plugins/debugger/qml/qmladapter.h
@@ -67,10 +67,10 @@ signals:
     void connected();
     void disconnected();
     void connectionStartupFailed();
-    void connectionError();
+    void connectionError(QAbstractSocket::SocketError socketError);
 
 private slots:
-    void connectionErrorOccurred();
+    void connectionErrorOccurred(QAbstractSocket::SocketError socketError);
     void connectionStateChanged();
     void pollInferior();
 
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index a344ffa7cec4d691303aef344c9da91d190c7394..5c135d861f59eea78b20fcd6c12ac9f56ad5bf82 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -166,9 +166,10 @@ void QmlEngine::connectionStartupFailed()
     notifyEngineRunFailed();
 }
 
-void QmlEngine::connectionError()
+void QmlEngine::connectionError(QAbstractSocket::SocketError socketError)
 {
-    // do nothing for now - only exit the debugger when inferior exits.
+    if (socketError ==QAbstractSocket::RemoteHostClosedError)
+        plugin()->showMessage(tr("QML Debugger: Remote host closed connection."), StatusBar);
 }
 
 void QmlEngine::runEngine()
@@ -251,13 +252,15 @@ void QmlEngine::shutdownEngine()
     shutdownEngineAsSlave();
 
     notifyEngineShutdownOk();
+    plugin()->showMessage(QString(), StatusBar);
 }
 
 void QmlEngine::setupEngine()
 {
     m_adapter->setMaxConnectionAttempts(MaxConnectionAttempts);
     m_adapter->setConnectionAttemptInterval(ConnectionAttemptDefaultInterval);
-    connect(m_adapter, SIGNAL(connectionError()), SLOT(connectionError()));
+    connect(m_adapter, SIGNAL(connectionError(QAbstractSocket::SocketError)),
+            SLOT(connectionError(QAbstractSocket::SocketError)));
     connect(m_adapter, SIGNAL(connected()), SLOT(connectionEstablished()));
     connect(m_adapter, SIGNAL(connectionStartupFailed()), SLOT(connectionStartupFailed()));
 
diff --git a/src/plugins/debugger/qml/qmlengine.h b/src/plugins/debugger/qml/qmlengine.h
index 3088af478e77c287d1204db6336f11b13c0f9b73..fee77d95e584d9e5d984b895d7ac8d1bb48a0098 100644
--- a/src/plugins/debugger/qml/qmlengine.h
+++ b/src/plugins/debugger/qml/qmlengine.h
@@ -122,7 +122,7 @@ signals:
 private slots:
     void connectionEstablished();
     void connectionStartupFailed();
-    void connectionError();
+    void connectionError(QAbstractSocket::SocketError error);
 
     void slotMessage(QString, bool);
     void slotAddToOutputWindow(QString, bool);