diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp
index 91a1a216360ad23c3106eaa9fad561e2a99b4f90..7095db9b9a6f57e047b5b187769d4eaccfa997b4 100644
--- a/src/plugins/debugger/gdb/attachgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp
@@ -111,7 +111,6 @@ void AttachGdbAdapter::handleAttach(const GdbResponse &response)
         m_engine->updateAll();
     } else {
         QString msg = __(response.data.findChild("msg").data());
-        setState(InferiorStartFailed);
         emit inferiorStartFailed(msg);
     }
 }
diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp
index c0158caccafc495fea6dfb82d7cccde434ea9586..5a522f4d5eba61baa80bbdcd1a7d5f71e4bfb29e 100644
--- a/src/plugins/debugger/gdb/coregdbadapter.cpp
+++ b/src/plugins/debugger/gdb/coregdbadapter.cpp
@@ -121,7 +121,6 @@ void CoreGdbAdapter::handleTargetCore1(const GdbResponse &response)
         int pos1 = console.data().indexOf('`');
         int pos2 = console.data().indexOf('\'');
         if (pos1 == -1 || pos2 == -1) {
-            setState(InferiorStartFailed);
             emit inferiorStartFailed(tr("No binary found."));
         } else {
             m_executable = console.data().mid(pos1 + 1, pos2 - pos1 - 1);
@@ -134,7 +133,6 @@ void CoreGdbAdapter::handleTargetCore1(const GdbResponse &response)
         }
     } else {
         const QByteArray msg = response.data.findChild("msg").data();
-        setState(InferiorStartFailed);
         emit inferiorStartFailed(msg);
     }
 }
@@ -149,7 +147,6 @@ void CoreGdbAdapter::handleDetach1(const GdbResponse &response)
             .arg(fi.absoluteFilePath()), CB(handleFileExecAndSymbols));
     } else {
         const QByteArray msg = response.data.findChild("msg").data();
-        setState(InferiorStartFailed);
         emit inferiorStartFailed(msg);
     }
 }
@@ -168,7 +165,6 @@ void CoreGdbAdapter::handleFileExecAndSymbols(const GdbResponse &response)
             .arg(__(response.data.findChild("msg").data()));
         setState(InferiorUnrunnable);
         m_engine->updateAll();
-        //setState(InferiorStartFailed);
        // emit inferiorStartFailed(msg);
     }
 }
@@ -185,7 +181,6 @@ void CoreGdbAdapter::handleTargetCore2(const GdbResponse &response)
             .arg(__(response.data.findChild("msg").data()));
         setState(InferiorUnrunnable);
         m_engine->updateAll();
-        //setState(InferiorStartFailed);
        // emit inferiorStartFailed(msg);
     }
 }
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index c9984dcd3629748df84e7c054c511c72a8e76df2..f45b63f648ee3f1b102c5623e4276e82b020d415 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -4218,6 +4218,7 @@ void GdbEngine::handleInferiorStartFailed(const QString &msg)
 {
     debugMessage(_("INFERIOR START FAILED"));
     showMessageBox(QMessageBox::Critical, tr("Inferior start failed"), msg);
+    setState(InferiorStartFailed);
     shutdown();
 }
 
diff --git a/src/plugins/debugger/gdb/plaingdbadapter.cpp b/src/plugins/debugger/gdb/plaingdbadapter.cpp
index 8cbfd89b6eebaff30b90d2141334540bc1681332..100d1f5f772684d4e904e76a5161bebb54895f64 100644
--- a/src/plugins/debugger/gdb/plaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/plaingdbadapter.cpp
@@ -141,7 +141,6 @@ void PlainGdbAdapter::handleExecRun(const GdbResponse &response)
         const QByteArray &msg = response.data.findChild("msg").data();
         //QTC_ASSERT(status() == InferiorRunning, /**/);
         //interruptInferior();
-        setState(InferiorStartFailed);
         emit inferiorStartFailed(msg);
     }
 }