diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index 96440d4e7df728d4025c2432c3dcfb0995ccb795..78ec65d5b0477eb2cc0b42fecefa9a537278c5c9 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -352,7 +352,8 @@ CdbEngine::CdbEngine(const DebuggerStartParameters &sp,
     m_notifyEngineShutdownOnTermination(false),
     m_hasDebuggee(false),
     m_elapsedLogTime(0),
-    m_sourceStepInto(false)
+    m_sourceStepInto(false),
+    m_wX86BreakpointCount(0)
 {
     Utils::SavedAction *assemblerAction = theAssemblerAction();
     m_operateByInstructionPending = assemblerAction->isChecked();
@@ -1430,7 +1431,7 @@ enum StopActionFlags
 
 unsigned CdbEngine::examineStopReason(const QByteArray &messageIn,
                                       QString *message,
-                                      QString *exceptionBoxMessage) const
+                                      QString *exceptionBoxMessage)
 {
     // Report stop reason (GDBMI)
     GdbMi stopReason;
@@ -1462,10 +1463,16 @@ unsigned CdbEngine::examineStopReason(const QByteArray &messageIn,
         // pulls DLLs. Avoid showing a 'stopped' Message box.
         if (exception.exceptionCode == winExceptionStartupCompleteTrap)
             return StopNotifyStop;
-        // WOW 64 breakpoint: just report in log and continue
+        // WOW 64 breakpoint: Report in log and continue the first one,
+        // subsequent ones are caused by interrupting the application.
         if (exception.exceptionCode == winExceptionWX86Breakpoint) {
-            *message = description;
-            return StopIgnoreContinue|StopReportLog;
+            if (m_wX86BreakpointCount++) {
+                *message = tr("Interrupted (%1)").arg(description);
+                return StopReportStatusMessage|StopNotifyStop;
+            } else {
+                *message = description;
+                return StopIgnoreContinue|StopReportLog;
+            }
         }
         if (isDebuggerWinException(exception.exceptionCode)) {
             *message = msgInterrupted();
diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h
index 34405dc4b0d3d8c750533136951930ade11de51f..bec8579cd0887ff238183eeef592a55eecb98b76 100644
--- a/src/plugins/debugger/cdb/cdbengine.h
+++ b/src/plugins/debugger/cdb/cdbengine.h
@@ -153,7 +153,7 @@ private:
     enum SpecialStopMode { NoSpecialStop, SpecialStopSynchronizeBreakpoints };
 
     unsigned examineStopReason(const QByteArray &messageIn, QString *message,
-                               QString *exceptionBoxMessage) const;
+                               QString *exceptionBoxMessage);
     bool commandsPending() const;
     void handleExtensionMessage(char t, int token, const QByteArray &what, const QByteArray &message);
     bool doSetupEngine(QString *errorMessage);
@@ -214,6 +214,7 @@ private:
     mutable int m_elapsedLogTime;
     QByteArray m_extensionMessageBuffer;
     bool m_sourceStepInto;
+    unsigned m_wX86BreakpointCount;
 };
 
 } // namespace Internal