diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index 4c1963d7a3ef09b85a447cd1bbdb4956db31750a..370eb838ec417a7a1f92960c279f7c1162a501ef 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -716,30 +716,6 @@ void BreakHandler::notifyBreakpointAdjusted(BreakpointId id,
 }
 
 
-void BreakHandler::ackCondition(BreakpointId id)
-{
-    Iterator it = m_storage.find(id);
-    QTC_ASSERT(it != m_storage.end(), return);
-    it->response.condition = it->data.condition;
-    updateMarker(id);
-}
-
-void BreakHandler::ackIgnoreCount(BreakpointId id)
-{
-    Iterator it = m_storage.find(id);
-    QTC_ASSERT(it != m_storage.end(), return);
-    it->response.ignoreCount = it->data.ignoreCount;
-    updateMarker(id);
-}
-
-void BreakHandler::ackEnabled(BreakpointId id)
-{
-    Iterator it = m_storage.find(id);
-    QTC_ASSERT(it != m_storage.end(), return);
-    it->response.enabled = it->data.enabled;
-    updateMarker(id);
-}
-
 void BreakHandler::removeBreakpoint(BreakpointId id)
 {
     Iterator it = m_storage.find(id);
diff --git a/src/plugins/debugger/breakhandler.h b/src/plugins/debugger/breakhandler.h
index 32e2d61de9afdabefa297c4a5a6611556b833a8b..c9ee8549b60b43c4d21753c772fbc25ddc341c2d 100644
--- a/src/plugins/debugger/breakhandler.h
+++ b/src/plugins/debugger/breakhandler.h
@@ -127,11 +127,6 @@ public:
     const BreakpointResponse &response(BreakpointId id) const;
     void setResponse(BreakpointId id, const BreakpointResponse &data);
 
-    // Incorporate debugger feedback. No synchronization request needed.
-    void ackCondition(BreakpointId id);
-    void ackIgnoreCount(BreakpointId id);
-    void ackEnabled(BreakpointId id);
-
     // State transitions.
     void notifyBreakpointInsertProceeding(BreakpointId id);
     void notifyBreakpointInsertOk(BreakpointId id);
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 5636224ea3a9adb502fc3ed045e9e96fbdeb922c..2454691ef1f51b516ee708a03bd86f592555a7a5 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -2299,10 +2299,12 @@ void GdbEngine::handleBreakList(const GdbMi &table)
 void GdbEngine::handleBreakDisable(const GdbResponse &response)
 {
     QTC_ASSERT(response.resultClass == GdbResultDone, /**/)
-    const BreakpointId id =response.cookie.toInt();
+    const BreakpointId id = response.cookie.toInt();
     // This should only be the requested state.
     QTC_ASSERT(!breakHandler()->isEnabled(id), /* Prevent later recursion */);
-    breakHandler()->ackEnabled(id);
+    BreakpointResponse br = breakHandler()->response(id);
+    br.enabled = false;
+    breakHandler()->setResponse(id, br);
 }
 
 void GdbEngine::handleBreakEnable(const GdbResponse &response)
@@ -2311,7 +2313,9 @@ void GdbEngine::handleBreakEnable(const GdbResponse &response)
     const BreakpointId id = response.cookie.toInt();
     // This should only be the requested state.
     QTC_ASSERT(breakHandler()->isEnabled(id), /* Prevent later recursion */);
-    breakHandler()->ackEnabled(id);
+    BreakpointResponse br = breakHandler()->response(id);
+    br.enabled = true;
+    breakHandler()->setResponse(id, br);
 }
 
 void GdbEngine::handleBreakIgnore(const GdbResponse &response)
@@ -2328,15 +2332,15 @@ void GdbEngine::handleBreakIgnore(const GdbResponse &response)
     // gdb 6.3 does not produce any console output
     QTC_ASSERT(response.resultClass == GdbResultDone, /**/)
     QString msg = _(response.data.findChild("consolestreamoutput").data());
+    BreakpointId id(response.cookie.toInt());
+    BreakpointResponse br = breakHandler()->response(id);
     //if (msg.contains(__("Will stop next time breakpoint")))
-    //    data->bpIgnoreCount = _("0");
+    //    response.ignoreCount = _("0");
     //else if (msg.contains(__("Will ignore next")))
-    //    data->bpIgnoreCount = data->ignoreCount;
+    //    response.ignoreCount = data->ignoreCount;
     // FIXME: this assumes it is doing the right thing...
-    BreakpointId id(response.cookie.toInt());
-    // This should only be the "wish" state.
-    QTC_ASSERT(!breakHandler()->isEnabled(id), /* prevent later recursion */);
-    breakHandler()->ackEnabled(id);
+    br.ignoreCount = breakHandler()->ignoreCount(id);
+    breakHandler()->setResponse(id, br);
 }
 
 void GdbEngine::handleBreakCondition(const GdbResponse &response)
@@ -2349,7 +2353,9 @@ void GdbEngine::handleBreakCondition(const GdbResponse &response)
     //   QByteArray msg = response.data.findChild("msg").data();
     //   if (1 || msg.startsWith("Error parsing breakpoint condition. "
     //            " Will try again when we hit the breakpoint.")) {
-    breakHandler()->ackCondition(id);
+    BreakpointResponse br = breakHandler()->response(id);
+    br.condition = breakHandler()->condition(id);
+    breakHandler()->setResponse(id, br);
 }
 
 void GdbEngine::extractDataFromInfoBreak(const QString &output, BreakpointId id)