diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp
index 17a820b0bd7e6751c3dd672cc7b5a389c56c2b49..fbc7c1f78b62334a6795f2cdf201bac2214e9b32 100644
--- a/src/plugins/debugger/qml/qmlcppengine.cpp
+++ b/src/plugins/debugger/qml/qmlcppengine.cpp
@@ -317,6 +317,19 @@ void QmlCppEngine::assignValueInDebugger(const WatchData *data,
     d->m_activeEngine->assignValueInDebugger(data, expr, value);
 }
 
+void QmlCppEngine::notifyInferiorIll()
+{
+    //This will eventually shutdown the engine
+    //Set final state to avoid quitDebugger() being called
+    //after this call
+    setTargetState(DebuggerFinished);
+
+    //Call notifyInferiorIll of cpp engine
+    //as qml engine will follow state transitions
+    //of cpp engine
+    d->m_cppEngine->notifyInferiorIll();
+}
+
 void QmlCppEngine::detachDebugger()
 {
     d->m_qmlEngine->detachDebugger();
diff --git a/src/plugins/debugger/qml/qmlcppengine.h b/src/plugins/debugger/qml/qmlcppengine.h
index fb3b5c66e746001ec1ce94421964fbe22a228add..efddd12f8503898af7433cb57dfc73285307aaaa 100644
--- a/src/plugins/debugger/qml/qmlcppengine.h
+++ b/src/plugins/debugger/qml/qmlcppengine.h
@@ -98,6 +98,8 @@ public:
 
     Internal::QtMessageLogHandler *qtMessageLogHandler() const;
 
+    void notifyInferiorIll();
+
 protected:
     void detachDebugger();
     void executeStep();