diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 7bda3560c43a737291054f38c968b75adae41c29..00453b5b0779461e52134955ed0894a12ca14789 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -677,6 +677,8 @@ void AnalyzerManager::toolSelected(int idx)
     updateRunActions();
 
     selectingTool = false;
+
+    emit currentToolChanged(newTool);
 }
 
 void AnalyzerManager::toolSelected(QAction *action)
diff --git a/src/plugins/analyzerbase/analyzermanager.h b/src/plugins/analyzerbase/analyzermanager.h
index 704501e8bdf9d653b8b066489f8cb21c8080b16e..2506d63ead71a3ac90e752270f9acf6822074a45 100644
--- a/src/plugins/analyzerbase/analyzermanager.h
+++ b/src/plugins/analyzerbase/analyzermanager.h
@@ -121,6 +121,9 @@ private slots:
     void loadToolSettings(Analyzer::IAnalyzerTool *tool);
     void updateRunActions();
 
+signals:
+    void currentToolChanged(Analyzer::IAnalyzerTool *tool);
+
 private:
     class AnalyzerManagerPrivate;
     friend class AnalyzerManagerPrivate;
diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp
index 3a4b858baf662e631e08288f15718ccfb4e2c18d..5c9342122359ffa1446ec132db19a0032070055b 100644
--- a/src/plugins/qmlprofiler/qmlprofilertool.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp
@@ -204,6 +204,11 @@ void QmlProfilerTool::initialize(ExtensionSystem::IPlugin */*plugin*/)
     command->setAttribute(Core::Command::CA_UpdateText);
     manalyzer->addAction(command, Analyzer::Constants::G_ANALYZER_STARTSTOP);
     connect(d->m_attachAction, SIGNAL(triggered()), this, SLOT(attach()));
+
+    Analyzer::AnalyzerManager *analyzerMgr = Analyzer::AnalyzerManager::instance();
+    connect(analyzerMgr, SIGNAL(currentToolChanged(Analyzer::IAnalyzerTool*)),
+            this, SLOT(updateAttachAction()));
+
     updateAttachAction();
 }
 
@@ -344,4 +349,7 @@ void QmlProfilerTool::updateAttachAction()
             d->m_attachAction->setText(tr("Attach..."));
         }
     }
+
+    d->m_attachAction->setEnabled(Analyzer::AnalyzerManager::instance()->currentTool() == this);
 }
+