diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 882dfaac9d5cece41052f0ed9bdeb9ae5c52d44f..d7fc5d001b4ebf24a41d84e2cb934e2f5f2b5bbb 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -441,6 +441,11 @@ void GdbEngine::handleResponse(const QByteArray &buff)
                     // We get multiple *running after thread creation and in Windows terminals.
                     showMessage(QString::fromLatin1("NOTE: INFERIOR STILL RUNNING IN STATE %1.").
                                 arg(QLatin1String(DebuggerEngine::stateName(state()))));
+                } else if (Utils::HostOsInfo::isWindowsHost() && (state() == InferiorStopRequested
+                               || state() == InferiorShutdownRequested)) {
+                    // FIXME: Breakpoints on Windows are exceptions which are thrown in newly
+                    // created threads so we have to filter out the running threads messages when
+                    // we request a stop.
                 } else {
                     notifyInferiorRunOk();
                 }