diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 571a1ee8357bd7e808d81525acba1bce07af4eeb..d3c6daa241af60f6ccdd245fa7a2d545a861fea8 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -553,7 +553,16 @@ void AnalyzerManagerPrivate::startTool()
 
 void AnalyzerManagerPrivate::modeChanged(IMode *mode)
 {
-    m_mainWindow->setDockActionsVisible(mode == m_mode);
+    if (mode && mode == m_mode) {
+        m_mainWindow->setDockActionsVisible(true);
+        static bool firstTime = true;
+        if (firstTime)
+            selectSavedTool();
+        firstTime = false;
+        updateRunActions();
+    } else {
+        m_mainWindow->setDockActionsVisible(false);
+    }
 }
 
 QAction *AnalyzerManagerPrivate::actionFromToolAndMode(IAnalyzerTool *tool, StartMode mode)
@@ -781,7 +790,6 @@ void AnalyzerManager::extensionsInitialized()
 
     foreach (IAnalyzerTool *tool, d->m_tools)
         tool->extensionsInitialized();
-    d->selectSavedTool();
 }
 
 void AnalyzerManager::shutdown()