diff --git a/src/tools/qml/qmlobserver/jsdebuggeragent.cpp b/src/tools/qml/qmlobserver/jsdebuggeragent.cpp
index 0eb01c21b1bd487f96eb5fec29781247a13412cc..29c3d4003198ea374d1fca95dd775caea0dc7bc0 100644
--- a/src/tools/qml/qmlobserver/jsdebuggeragent.cpp
+++ b/src/tools/qml/qmlobserver/jsdebuggeragent.cpp
@@ -273,13 +273,11 @@ void JSDebuggerAgent::positionChange(qint64 scriptId,
         }
     }
 
-
     switch (state) {
     case NoState:
     case Stopped:
         // Do nothing
         break;
-
     case SteppingOutState:
         if (stepDepth >= 0)
             break;
@@ -318,6 +316,22 @@ void JSDebuggerAgent::exceptionCatch(qint64 scriptId,
     Q_UNUSED(exception);
 }
 
+bool JSDebuggerAgent::supportsExtension(QScriptEngineAgent::Extension extension) const
+{
+    return extension == QScriptEngineAgent::DebuggerInvocationRequest;
+}
+
+QVariant JSDebuggerAgent::extension(QScriptEngineAgent::Extension extension, const QVariant& argument)
+{
+    if (extension == QScriptEngineAgent::DebuggerInvocationRequest) {
+        stopped();
+        return QVariant();
+    }
+    return QScriptEngineAgent::extension(extension, argument);
+}
+
+
+
 void JSDebuggerAgent::messageReceived(const QByteArray& message)
 {
     QDataStream ds(message);
diff --git a/src/tools/qml/qmlobserver/jsdebuggeragent.h b/src/tools/qml/qmlobserver/jsdebuggeragent.h
index acd7b18c92f793e6013b52bd6c46090eae522560..0618dcc0553342f1d2347d99fadc420ae018fbb3 100644
--- a/src/tools/qml/qmlobserver/jsdebuggeragent.h
+++ b/src/tools/qml/qmlobserver/jsdebuggeragent.h
@@ -93,9 +93,9 @@ public:
     void exceptionCatch(qint64 scriptId,
                         const QScriptValue &exception);
 
-/*    bool supportsExtension(Extension extension) const;
+    bool supportsExtension(Extension extension) const;
     QVariant extension(Extension extension,
-                       const QVariant &argument = QVariant());*/
+                       const QVariant &argument = QVariant());
 
     void messageReceived(const QByteArray &);
     void enabledChanged(bool);