diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index ba3d58b3c26dffb26bde6a521c5eb0a01b87e205..d889926360cd543ab2d712dcd8f69acbeb26148e 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -578,13 +578,15 @@ static bool isAllowedTransition(BreakpointState from, BreakpointState to)
             || to == BreakpointPending
             || to == BreakpointDead;
     case BreakpointPending:
-        return false;
+        return to == BreakpointChangeRequested
+            || to == BreakpointRemoveRequested;
     case BreakpointInserted:
-        return false;
+        return to == BreakpointChangeRequested
+            || to == BreakpointRemoveRequested;
     case BreakpointRemoveRequested:
-        return false;
+        return to == BreakpointRemoveProceeding;
     case BreakpointRemoveProceeding:
-        return false;
+        return to == BreakpointDead;
     case BreakpointDead:
         return false;
     }