diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index b9863631e5290fdb9f6c6ad740279234792d4058..19890fc0acc061a3c7409b14dfda3f88641851da 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -805,7 +805,12 @@ void GdbEngine::flushCommand(const GdbCommand &cmd0)
     // Start Watchdog.
     if (m_commandTimer->interval() <= 20000)
         m_commandTimer->setInterval(commandTimeoutTime());
-    m_commandTimer->start();
+    // The process can die for external reason between the "-gdb-exit" was
+    // sent and a response could be retrieved. We don't want the watchdog
+    // to bark in that case since the only possible outcome is a dead
+    // process anyway.
+    if (cmd.command != "-gdb-exit")
+        m_commandTimer->start();
 
     //if (cmd.flags & LosesChild)
     //    setState(InferiorShutdownRequested);