diff --git a/src/plugins/debugger/qml/qmldebuggerclient.h b/src/plugins/debugger/qml/qmldebuggerclient.h
index a7391f65b0e7db125ece1dfff6085c15e31f5f93..69ceb86fc7d23667cb3b76104f542308cc650f56 100644
--- a/src/plugins/debugger/qml/qmldebuggerclient.h
+++ b/src/plugins/debugger/qml/qmldebuggerclient.h
@@ -65,9 +65,9 @@ public:
 
     virtual void activateFrame(int index) = 0;
 
-    virtual void insertBreakpoint(BreakpointModelId id, BreakHandler *handler) = 0;
-    virtual void removeBreakpoint(BreakpointModelId id, BreakHandler *handler) = 0;
-    virtual void changeBreakpoint(BreakpointModelId id, BreakHandler *handler) = 0;
+    virtual void insertBreakpoint(BreakpointModelId id) = 0;
+    virtual void removeBreakpoint(BreakpointModelId id) = 0;
+    virtual void changeBreakpoint(BreakpointModelId id) = 0;
     virtual void updateBreakpoints() = 0;
 
     virtual void assignValueInDebugger(const QByteArray expr, const quint64 &id,
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 0af34b1357503fdbe97df690ccd40eeefa50bce3..edc58b7a62bc1e7e143aa9d3674340a09d2f02c9 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -502,10 +502,10 @@ void QmlEngine::insertBreakpoint(BreakpointModelId id)
     handler->notifyBreakpointInsertProceeding(id);
 
     if (d->m_adapter.activeDebuggerClient()) {
-        d->m_adapter.activeDebuggerClient()->insertBreakpoint(id,handler);
+        d->m_adapter.activeDebuggerClient()->insertBreakpoint(id);
     } else {
         foreach (QmlDebuggerClient *client, d->m_adapter.debuggerClients()) {
-            client->insertBreakpoint(id,handler);
+            client->insertBreakpoint(id);
         }
     }
 
@@ -522,10 +522,10 @@ void QmlEngine::removeBreakpoint(BreakpointModelId id)
     handler->notifyBreakpointRemoveProceeding(id);
 
     if (d->m_adapter.activeDebuggerClient()) {
-        d->m_adapter.activeDebuggerClient()->removeBreakpoint(id,handler);
+        d->m_adapter.activeDebuggerClient()->removeBreakpoint(id);
     } else {
         foreach (QmlDebuggerClient *client, d->m_adapter.debuggerClients()) {
-            client->removeBreakpoint(id,handler);
+            client->removeBreakpoint(id);
         }
     }
 
@@ -542,10 +542,10 @@ void QmlEngine::changeBreakpoint(BreakpointModelId id)
     handler->notifyBreakpointChangeProceeding(id);
 
     if (d->m_adapter.activeDebuggerClient()) {
-        d->m_adapter.activeDebuggerClient()->changeBreakpoint(id,handler);
+        d->m_adapter.activeDebuggerClient()->changeBreakpoint(id);
     } else {
         foreach (QmlDebuggerClient *client, d->m_adapter.debuggerClients()) {
-            client->changeBreakpoint(id,handler);
+            client->changeBreakpoint(id);
         }
     }
 
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index 2a6c4f5f33ce190a88d329490af83ea0735957c3..9505dbaf65480d02c1ffc0a118fa4e9fcae21452 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -221,8 +221,9 @@ void QmlV8DebuggerClient::activateFrame(int index)
     setLocals(index);
 }
 
-void QmlV8DebuggerClient::insertBreakpoint(BreakpointModelId id, BreakHandler *handler)
+void QmlV8DebuggerClient::insertBreakpoint(BreakpointModelId id)
 {
+    BreakHandler *handler = d->engine->breakHandler();
     QByteArray request;
 
     JsonInputStream(request) << '{' << INITIALPARAMS ;
@@ -243,7 +244,7 @@ void QmlV8DebuggerClient::insertBreakpoint(BreakpointModelId id, BreakHandler *h
     sendMessage(packMessage(request));
 }
 
-void QmlV8DebuggerClient::removeBreakpoint(BreakpointModelId id, BreakHandler * /*handler*/)
+void QmlV8DebuggerClient::removeBreakpoint(BreakpointModelId id)
 {
     QList<int> breakpoints = d->breakpoints.values(id);
     d->breakpoints.remove(id);
@@ -264,7 +265,7 @@ void QmlV8DebuggerClient::removeBreakpoint(BreakpointModelId id, BreakHandler *
     }
 }
 
-void QmlV8DebuggerClient::changeBreakpoint(BreakpointModelId /*id*/, BreakHandler * /*handler*/)
+void QmlV8DebuggerClient::changeBreakpoint(BreakpointModelId /*id*/)
 {
 }
 
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.h b/src/plugins/debugger/qml/qmlv8debuggerclient.h
index b3ff37bd4e87b77eae523325dda9b2f8695e3e49..ef742124f05be2c5e7d136c335edb681b9685f0b 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.h
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.h
@@ -65,9 +65,9 @@ public:
 
     void activateFrame(int index);
 
-    void insertBreakpoint(BreakpointModelId id, BreakHandler *handler);
-    void removeBreakpoint(BreakpointModelId id, BreakHandler *handler);
-    void changeBreakpoint(BreakpointModelId id, BreakHandler *handler);
+    void insertBreakpoint(BreakpointModelId id);
+    void removeBreakpoint(BreakpointModelId id);
+    void changeBreakpoint(BreakpointModelId id);
     void updateBreakpoints();
 
     void assignValueInDebugger(const QByteArray expr, const quint64 &id,
diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
index 692fef36e76144da6da5694e49500d131e153f14..bfe053122333ab2a6ca6e4431d682b011b070e89 100644
--- a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
+++ b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
@@ -210,8 +210,9 @@ void QScriptDebuggerClient::activateFrame(int index)
     sendMessage(reply);
 }
 
-void QScriptDebuggerClient::insertBreakpoint(BreakpointModelId id, BreakHandler *handler)
+void QScriptDebuggerClient::insertBreakpoint(BreakpointModelId id)
 {
+    BreakHandler *handler = d->engine->breakHandler();
     JSAgentBreakpointData bp;
     bp.fileUrl = QUrl::fromLocalFile(handler->fileName(id)).toString().toUtf8();
     bp.lineNumber = handler->lineNumber(id);
@@ -219,8 +220,9 @@ void QScriptDebuggerClient::insertBreakpoint(BreakpointModelId id, BreakHandler
     d->breakpoints.insert(bp);
 }
 
-void QScriptDebuggerClient::removeBreakpoint(BreakpointModelId id, BreakHandler *handler)
+void QScriptDebuggerClient::removeBreakpoint(BreakpointModelId id)
 {
+    BreakHandler *handler = d->engine->breakHandler();
     JSAgentBreakpointData bp;
     bp.fileUrl = QUrl::fromLocalFile(handler->fileName(id)).toString().toUtf8();
     bp.lineNumber = handler->lineNumber(id);
@@ -228,7 +230,7 @@ void QScriptDebuggerClient::removeBreakpoint(BreakpointModelId id, BreakHandler
     d->breakpoints.remove(bp);
 }
 
-void QScriptDebuggerClient::changeBreakpoint(BreakpointModelId /*id*/, BreakHandler * /*handler*/)
+void QScriptDebuggerClient::changeBreakpoint(BreakpointModelId /*id*/)
 {
 }
 
diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.h b/src/plugins/debugger/qml/qscriptdebuggerclient.h
index 6723347f0165e9b8178dc6b3633e34b7269bc566..79318cd806e2b217a2d08a5c0f9b89723af7223e 100644
--- a/src/plugins/debugger/qml/qscriptdebuggerclient.h
+++ b/src/plugins/debugger/qml/qscriptdebuggerclient.h
@@ -64,9 +64,9 @@ public:
 
     void activateFrame(int index);
 
-    void insertBreakpoint(BreakpointModelId id, BreakHandler *handler);
-    void removeBreakpoint(BreakpointModelId id, BreakHandler *handler);
-    void changeBreakpoint(BreakpointModelId id, BreakHandler *handler);
+    void insertBreakpoint(BreakpointModelId id);
+    void removeBreakpoint(BreakpointModelId id);
+    void changeBreakpoint(BreakpointModelId id);
     void updateBreakpoints();
 
     void assignValueInDebugger(const QByteArray expr, const quint64 &id,