diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index d6822717628b2b52e3d6a5b56b20519032a244d8..6ed2830cd8cdb6b85bc67177e0c9caa724bb2c30 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -746,17 +746,6 @@ void BreakHandler::loadSessionData()
     updateMarkers();
 }
 
-void BreakHandler::activateBreakpoint(int index)
-{
-    const BreakpointData *data = at(index);
-    if (!data->markerFileName().isEmpty()) {
-        StackFrame frame;
-        frame.file = data->markerFileName();
-        frame.line = data->markerLineNumber();
-        m_manager->gotoLocation(frame, false);
-    }
-}
-
 void BreakHandler::breakByFunction(const QString &functionName)
 {
     // One breakpoint per function is enough for now. This does not handle
diff --git a/src/plugins/debugger/breakhandler.h b/src/plugins/debugger/breakhandler.h
index 35904fbaf67f786a507126652dbbd46e4f14c3f8..c0aaadc8cb6727e82f604e8ce929433cc9b01b04 100644
--- a/src/plugins/debugger/breakhandler.h
+++ b/src/plugins/debugger/breakhandler.h
@@ -160,7 +160,6 @@ public slots:
     void appendBreakpoint(BreakpointData *data);
     void toggleBreakpointEnabled(BreakpointData *data);
     void breakByFunction(const QString &functionName);
-    void activateBreakpoint(int index);
     void removeBreakpoint(int index);
 
 private:
diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index 08c7fd062877170226adeb5170afc9d9f9c8ec8d..ba2c527fd190adca3dc172605060ffc1bc42f7d7 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -419,7 +419,7 @@ void DebuggerManager::init()
         qobject_cast<QAbstractItemView *>(d->m_breakWindow);
     breakView->setModel(d->m_breakHandler->model());
     connect(breakView, SIGNAL(breakpointActivated(int)),
-        d->m_breakHandler, SLOT(activateBreakpoint(int)));
+        this, SLOT(activateBreakpoint(int)));
     connect(breakView, SIGNAL(breakpointDeleted(int)),
         d->m_breakHandler, SLOT(removeBreakpoint(int)));
     connect(breakView, SIGNAL(breakpointSynchronizationRequested()),
@@ -1336,6 +1336,17 @@ void DebuggerManager::addToWatchWindow()
         d->m_watchHandler->watchExpression(exp);
 }
 
+void DebuggerManager::activateBreakpoint(int index)
+{
+    const BreakpointData *data = breakHandler()->at(index);
+    if (!data->markerFileName().isEmpty()) {
+        StackFrame frame;
+        frame.file = data->markerFileName();
+        frame.line = data->markerLineNumber();
+        gotoLocation(frame, false);
+    }
+}
+
 void DebuggerManager::breakByFunctionMain()
 {
 #ifdef Q_OS_WIN
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 6f3fbfece8977238eeb4a7b96502ebe05882c79c..4e4657a748dbd6d3d7b0048d685fbdb65666a3ab 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -259,6 +259,7 @@ public slots: // FIXME
         { showDebuggerOutput(LogDebug, msg); }
     void ensureLogVisible();
     void updateWatchersWindow();
+    void activateBreakpoint(int index);
 
 //private slots:  // FIXME
     void showDebuggerOutput(int channel, const QString &msg);
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 769448f003818cae05bfb2d986aa52044d136482..13c2add30da552516a11fd0236eb16529e71c95b 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1174,11 +1174,11 @@ void DebuggerPlugin::requestContextMenu(TextEditor::ITextEditor *editor,
 
 void DebuggerPlugin::breakpointSetRemoveMarginActionTriggered()
 {
-    if (QAction *act = qobject_cast<QAction *>(sender())) {
-        QString str = act->data().toString();
-        int pos = str.lastIndexOf(':');
-        m_manager->toggleBreakpoint(str.left(pos), str.mid(pos + 1).toInt());
-    }
+    QAction *act = qobject_cast<QAction *>(sender());
+    QTC_ASSERT(act, return);
+    QString str = act->data().toString();
+    int pos = str.lastIndexOf(':');
+    m_manager->toggleBreakpoint(str.left(pos), str.mid(pos + 1).toInt());
 }
 
 void DebuggerPlugin::breakpointEnableDisableMarginActionTriggered()