diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index 39ee4cf1d5d7de8c7892095030e87b3cda32bd8c..3a68ad24ca3bfc48b673efc8dbc203ff6974a156 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -584,6 +584,7 @@ void BreakHandler::toggleBreakpointEnabled(BreakpointData *data)
         m_enabled.removeAll(data);
         m_disabled.append(data);
     }
+    data->removeMarker(); // Force icon update.
     data->updateMarker();
     emit layoutChanged();
     m_engine->attemptBreakpointSynchronization();
diff --git a/src/plugins/debugger/breakpoint.cpp b/src/plugins/debugger/breakpoint.cpp
index 90b52cb113057af587fb27b70dfa948881f36bdf..11175b010c7010e6c82d4fb5aa9c316049c853c2 100644
--- a/src/plugins/debugger/breakpoint.cpp
+++ b/src/plugins/debugger/breakpoint.cpp
@@ -74,7 +74,6 @@ public:
     {
         m_data = data;
         m_pending = true;
-        m_enabled = true;
         //qDebug() << "CREATE MARKER " << fileName << lineNumber;
     }
 
@@ -87,19 +86,18 @@ public:
     QIcon icon() const
     {
         const BreakHandler *handler = m_data->handler();
+        if (!m_data->enabled)
+            return handler->disabledBreakpointIcon();
         if (!handler->isActive())
             return handler->emptyIcon();
-        if (!m_enabled)
-            return handler->disabledBreakpointIcon();
         return m_pending ? handler->pendingBreakPointIcon() : handler->breakpointIcon();
     }
 
-    void setPending(bool pending, bool enabled)
+    void setPending(bool pending)
     {
-        if (pending == m_pending && enabled == m_enabled)
+        if (pending == m_pending)
             return;
         m_pending = pending;
-        m_enabled = enabled;
         updateMarker();
     }
 
@@ -149,7 +147,6 @@ public:
 private:
     BreakpointData *m_data;
     bool m_pending;
-    bool m_enabled;
 };
 
 
@@ -243,7 +240,7 @@ void BreakpointData::updateMarker()
         marker = new BreakpointMarker(this, m_markerFileName, m_markerLineNumber);
 
     if (marker)
-        marker->setPending(pending, enabled);
+        marker->setPending(pending);
 }
 
 void BreakpointData::setMarkerFileName(const QString &fileName)