diff --git a/src/plugins/projectexplorer/ioutputparser.cpp b/src/plugins/projectexplorer/ioutputparser.cpp
index 0974c661b4b1ca9623179ac63f1c238c7eaea4f6..6cf1a4da5fed01f6e698124555887c8ccf93e204 100644
--- a/src/plugins/projectexplorer/ioutputparser.cpp
+++ b/src/plugins/projectexplorer/ioutputparser.cpp
@@ -59,6 +59,10 @@ void IOutputParser::appendOutputParser(IOutputParser *parser)
 IOutputParser *IOutputParser::takeOutputParserChain()
 {
     IOutputParser *parser = m_parser;
+    disconnect(parser, SIGNAL(addOutput(QString)),
+            this, SLOT(outputAdded(QString)));
+    disconnect(parser, SIGNAL(addTask(ProjectExplorer::Task)),
+            this, SLOT(taskAdded(ProjectExplorer::Task)));
     m_parser = 0;
     return parser;
 }