diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 942ccf713b9e162fbfde1141cf125420b4297475..47f0810a9dbb50e84a88eea4f600ca313908f648 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -802,6 +802,9 @@ void GdbEngine::flushCommand(const GdbCommand &cmd0)
 
     m_gdbAdapter->write(cmd.command + "\r\n");
 
+    // Start Watchdog.
+    if (m_commandTimer->interval() <= 20000)
+        m_commandTimer->setInterval(commandTimeoutTime());
     m_commandTimer->start();
 
     //if (cmd.flags & LosesChild)
@@ -4019,8 +4022,6 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
     }
 
     showMessage(_("GDB STARTED, INITIALIZING IT"));
-    m_commandTimer->setInterval(commandTimeoutTime());
-
     postCommand("show version", CB(handleShowVersion));
 
     //postCommand("-enable-timings");