diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 7a005ec5f5e1f96f6ae47116db11a6edc3c4a971..3fe00adf56e2a09bb8a30b69892e07db8be02fba 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -961,10 +961,19 @@ void GdbEngine::handleResultRecord(GdbResponse *response)
         response->resultClass != ((cmd.flags & RunRequest) ? GdbResultRunning :
                                   (cmd.flags & ExitRequest) ? GdbResultExit :
                                   GdbResultDone)) {
-        QByteArray rsp = GdbResponse::stringFromResultClass(response->resultClass);
-        rsp = "UNEXPECTED RESPONSE " + rsp + " TO COMMAND" + cmd.command;
-        qWarning() << rsp << " AT " __FILE__ ":" STRINGIFY(__LINE__);
-        debugMessage(_(rsp));
+#ifdef Q_OS_WIN
+        // Ignore spurious 'running' responses to 'attach'
+        const bool warning = !(m_startParameters->startMode == AttachExternal
+                               && cmd.command.startsWith("attach"));
+#else
+        const bool warning = true;
+#endif
+        if (warning) {
+            QByteArray rsp = GdbResponse::stringFromResultClass(response->resultClass);
+            rsp = "UNEXPECTED RESPONSE '" + rsp + "' TO COMMAND '" + cmd.command + "'";
+            qWarning() << rsp << " AT " __FILE__ ":" STRINGIFY(__LINE__);
+            debugMessage(_(rsp));
+        }
     } else {
         if (cmd.callback)
             (this->*cmd.callback)(*response);