diff --git a/src/plugins/projectexplorer/gnumakeparser.cpp b/src/plugins/projectexplorer/gnumakeparser.cpp
index 24bbb873cf26747dd61cc1e689687f35e8170cd4..0e2664bffffdc01df0fbf2e526bf84e6613f5461 100644
--- a/src/plugins/projectexplorer/gnumakeparser.cpp
+++ b/src/plugins/projectexplorer/gnumakeparser.cpp
@@ -46,6 +46,7 @@ GnuMakeParser::GnuMakeParser(const QString &dir) :
     m_suppressIssues(false),
     m_fatalErrorCount(0)
 {
+    setObjectName(QLatin1String("GnuMakeParser"));
     m_makeDir.setPattern(QLatin1String(MAKE_PATTERN) +
                          QLatin1String("(\\w+) directory .(.+).$"));
     m_makeDir.setMinimal(true);
@@ -206,6 +207,24 @@ void ProjectExplorerPlugin::testGnuMakeParserParsing_data()
             << QList<Task>()
             << QString()
             << QStringList();
+    QTest::newRow("pass-through gcc infos")
+            << QStringList()
+            << QString::fromLatin1("/temp/test/untitled8/main.cpp: In function `int main(int, char**)':\n"
+                                   "../../scriptbug/main.cpp: At global scope:\n"
+                                   "../../scriptbug/main.cpp: In instantiation of void bar(i) [with i = double]:\n"
+                                   "../../scriptbug/main.cpp:8: instantiated from void foo(i) [with i = double]\n"
+                                   "../../scriptbug/main.cpp:22: instantiated from here\n")
+            << OutputParserTester::STDERR
+            << QString()
+            << QString::fromLatin1("/temp/test/untitled8/main.cpp: In function `int main(int, char**)':\n"
+                                   "../../scriptbug/main.cpp: At global scope:\n"
+                                   "../../scriptbug/main.cpp: In instantiation of void bar(i) [with i = double]:\n"
+                                   "../../scriptbug/main.cpp:8: instantiated from void foo(i) [with i = double]\n"
+                                   "../../scriptbug/main.cpp:22: instantiated from here\n")
+            << QList<ProjectExplorer::Task>()
+            << QString()
+            << QStringList();
+
     // make sure adding directories works (once;-)
     QTest::newRow("entering directory")
             << (QStringList() << QString::fromLatin1("/test/dir") )
diff --git a/src/plugins/projectexplorer/ldparser.cpp b/src/plugins/projectexplorer/ldparser.cpp
index 3ca85d3e2265234080da17581f413ab09a1a74fb..4629426acb290a6c3e5356978445bc694db91189 100644
--- a/src/plugins/projectexplorer/ldparser.cpp
+++ b/src/plugins/projectexplorer/ldparser.cpp
@@ -43,6 +43,7 @@ namespace {
 
 LdParser::LdParser()
 {
+    setObjectName(QLatin1String("LdParser"));
     m_regExpLinker.setPattern(QString::fromLatin1(FILE_PATTERN) + '(' + QLatin1String(POSITION_PATTERN) + ")?\\s(.+)$");
     m_regExpLinker.setMinimal(true);
 
diff --git a/src/plugins/projectexplorer/linuxiccparser.cpp b/src/plugins/projectexplorer/linuxiccparser.cpp
index 3516df16612874ce1f7d4def71e25d4e22b51cb5..a1038aa32d08f06fe95baeacea656605274ad647 100644
--- a/src/plugins/projectexplorer/linuxiccparser.cpp
+++ b/src/plugins/projectexplorer/linuxiccparser.cpp
@@ -38,6 +38,7 @@ using namespace ProjectExplorer;
 LinuxIccParser::LinuxIccParser()
     : m_expectFirstLine(true), m_indent(0), m_temporary(Task())
 {
+    setObjectName(QLatin1String("LinuxIccParser"));
     // main.cpp(53): error #308: function \"AClass::privatefunc\" (declared at line 4 of \"main.h\") is inaccessible
 
     m_firstLine.setPattern("^([^\\(\\)]+)"           // filename (cap 1)
diff --git a/src/plugins/projectexplorer/msvcparser.cpp b/src/plugins/projectexplorer/msvcparser.cpp
index 37130af9fa0f23b45ba01c36a7a137f66ed5e8e2..7051717870f148bc58ff8bc792d1050cece538f8 100644
--- a/src/plugins/projectexplorer/msvcparser.cpp
+++ b/src/plugins/projectexplorer/msvcparser.cpp
@@ -39,6 +39,7 @@ using namespace ProjectExplorer;
 
 MsvcParser::MsvcParser()
 {
+    setObjectName(QLatin1String("MavcParser"));
     m_compileRegExp.setPattern(QString::fromLatin1("^") + QLatin1String(FILE_POS_PATTERN)
                                + QLatin1String(" : .*(warning|error) (")
                                + QLatin1String(ERROR_PATTERN) + QLatin1String(".*)$"));
diff --git a/src/plugins/qt4projectmanager/qmakeparser.cpp b/src/plugins/qt4projectmanager/qmakeparser.cpp
index 14971e7fe6049ae348f1f7ee1034381b0865b91a..26c049a35e2e25f2ea6619943059c245956954e3 100644
--- a/src/plugins/qt4projectmanager/qmakeparser.cpp
+++ b/src/plugins/qt4projectmanager/qmakeparser.cpp
@@ -40,6 +40,7 @@ using ProjectExplorer::Task;
 
 QMakeParser::QMakeParser()
 {
+    setObjectName(QLatin1String("QMakeParser"));
 }
 
 void QMakeParser::stdError(const QString &line)
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp b/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp
index e4c8c5728331f69e5d0ae4b7161feaf7ca987a65..5702d3611b58b69bcf4d9e828a05cf86c4865a97 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp
@@ -39,6 +39,7 @@ RvctParser::RvctParser() :
     m_additionalInfo(false),
     m_lastLine(0)
 {
+    setObjectName(QLatin1String("RvctParser"));
     // Start of a error or warning:
     m_warningOrError.setPattern("^\"([^\\(\\)]+[^\\d])\", line (\\d+):(\\s(Warning|Error):)\\s(.+)$");
     m_warningOrError.setMinimal(true);
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp
index d1d98a6e159825317507e55bfba117e1b3d19522..9d1522fe98edf18ddb8cda10601bd5ac9b0c46a2 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp
@@ -37,6 +37,7 @@ using namespace ProjectExplorer::Constants;
 
 WinscwParser::WinscwParser()
 {
+    setObjectName(QLatin1String("WinscwParser"));
     // linker problems:
     m_linkerProblem.setPattern("^(\\S*)\\(\\S+\\):\\s(.+)$");
     m_linkerProblem.setMinimal(true);
diff --git a/src/plugins/qt4projectmanager/qtparser.cpp b/src/plugins/qt4projectmanager/qtparser.cpp
index 7c9aa3d28de1ea35dae348e6558925a753ed628f..581e5f98fab658e3b1e0c6aaacc21ecfd4bec26e 100644
--- a/src/plugins/qt4projectmanager/qtparser.cpp
+++ b/src/plugins/qt4projectmanager/qtparser.cpp
@@ -45,6 +45,7 @@ namespace {
 
 QtParser::QtParser()
 {
+    setObjectName(QLatin1String("QtParser"));
     m_mocRegExp.setPattern(QString::fromLatin1(FILE_PATTERN) + "(\\d+):\\s(Warning|Error):\\s(.+)$");
     m_mocRegExp.setMinimal(true);
 }
@@ -102,7 +103,21 @@ void Qt4ProjectManagerPlugin::testQtOutputParser_data()
             << QString() << QString::fromLatin1("Sometext")
             << QList<ProjectExplorer::Task>()
             << QString();
-
+    QTest::newRow("pass-through gcc infos")
+            << QString::fromLatin1("/temp/test/untitled8/main.cpp: In function `int main(int, char**)':\n"
+                                   "../../scriptbug/main.cpp: At global scope:\n"
+                                   "../../scriptbug/main.cpp: In instantiation of void bar(i) [with i = double]:\n"
+                                   "../../scriptbug/main.cpp:8: instantiated from void foo(i) [with i = double]\n"
+                                   "../../scriptbug/main.cpp:22: instantiated from here\n")
+            << OutputParserTester::STDERR
+            << QString()
+            << QString::fromLatin1("/temp/test/untitled8/main.cpp: In function `int main(int, char**)':\n"
+                                   "../../scriptbug/main.cpp: At global scope:\n"
+                                   "../../scriptbug/main.cpp: In instantiation of void bar(i) [with i = double]:\n"
+                                   "../../scriptbug/main.cpp:8: instantiated from void foo(i) [with i = double]\n"
+                                   "../../scriptbug/main.cpp:22: instantiated from here\n")
+            << QList<ProjectExplorer::Task>()
+            << QString();
     QTest::newRow("moc warning")
             << QString::fromLatin1("..\\untitled\\errorfile.h:0: Warning: No relevant classes found. No output generated.")
             << OutputParserTester::STDERR