diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp
index 5384ee5ccb78f39faf3f81d06f52051564486ed1..35ddb9013374dcee23835d1d5de7d7e61211042a 100644
--- a/src/plugins/projectexplorer/outputwindow.cpp
+++ b/src/plugins/projectexplorer/outputwindow.cpp
@@ -393,7 +393,7 @@ void OutputPane::tabChanged(int i)
 
         RunControl *rc = m_runControlTabs.at(index).runControl;
         m_stopAction->setEnabled(rc->isRunning());
-        m_reRunButton->setEnabled(!rc->isRunning());
+        m_reRunButton->setEnabled(!rc->isRunning() && rc->runMode() == Constants::RUNMODE);
         m_reRunButton->setIcon(rc->runMode() == Constants::DEBUGMODE ? m_debugIcon : m_runIcon);
     }
 }
@@ -423,7 +423,7 @@ void OutputPane::runControlFinished()
                     << " current " << current << m_runControlTabs.size();
 
     if (current && current == sender()) {
-        m_reRunButton->setEnabled(true);
+        m_reRunButton->setEnabled(current->runMode() == Constants::RUNMODE);
         m_stopAction->setEnabled(false);
         m_reRunButton->setIcon(current->runMode() == Constants::DEBUGMODE ? m_debugIcon : m_runIcon);
     }