diff --git a/src/plugins/projectexplorer/applicationlauncher_win.cpp b/src/plugins/projectexplorer/applicationlauncher_win.cpp
index cd082128930553cebcb567ca8f92ecc9bad5c06c..bb35f7c2420eff60254b09dfe5b0b79e1ab7d890 100644
--- a/src/plugins/projectexplorer/applicationlauncher_win.cpp
+++ b/src/plugins/projectexplorer/applicationlauncher_win.cpp
@@ -82,10 +82,13 @@ void ApplicationLauncher::start(Mode mode, const QString &program, const QString
 
 void ApplicationLauncher::stop()
 {
+    if (!isRunning())
+        return;
     if (m_currentMode == Gui) {
         m_winGuiProcess->stop();
     } else {
         m_consoleProcess->stop();
+        processStopped();
     }
 }
 
diff --git a/src/plugins/projectexplorer/applicationlauncher_x11.cpp b/src/plugins/projectexplorer/applicationlauncher_x11.cpp
index cf15d0c3b2c399b17742eee94f903508d85b7676..12a3a5ea5419a77600309c4f3ed8dc56cb500c2f 100644
--- a/src/plugins/projectexplorer/applicationlauncher_x11.cpp
+++ b/src/plugins/projectexplorer/applicationlauncher_x11.cpp
@@ -87,6 +87,8 @@ void ApplicationLauncher::start(Mode mode, const QString &program, const QString
 
 void ApplicationLauncher::stop()
 {
+    if (!isRunning())
+        return;
     if (m_currentMode == Gui) {
         m_guiProcess->terminate();
         if (!m_guiProcess->waitForFinished(1000)) { // This is blocking, so be fast.
@@ -95,6 +97,7 @@ void ApplicationLauncher::stop()
         }
     } else {
         m_consoleProcess->stop();
+        processStopped();
     }
 }