diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 7ba83ad2dad5739c1c09361d1d51b3b3b56c94f3..a70d713a5e49a8df9158ea599b64e070cd13a3b4 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -962,15 +962,10 @@ void Qt4ProFileNode::setupReader()
 bool Qt4ProFileNode::evaluate()
 {
     bool parserError = false;
-    if (!m_readerExact->readProFile(m_projectFilePath)) {
-        m_project->proFileParseError(tr("Error while parsing file %1. Giving up.").arg(m_projectFilePath));
+    if (!m_readerExact->readProFile(m_projectFilePath))
         parserError = true;
-    }
-
-    if (!m_readerCumulative->readProFile(m_projectFilePath)) {
-        m_project->proFileParseError(tr("Error while parsing file %1. Giving up.").arg(m_projectFilePath));
+    if (!m_readerCumulative->readProFile(m_projectFilePath))
         parserError = true;
-    }
     return parserError;
 }
 
@@ -1012,8 +1007,10 @@ void Qt4ProFileNode::applyEvaluate(bool parseResult, bool async)
         if (m_readerCumulative)
             m_project->destroyProFileReader(m_readerCumulative);
         m_readerExact = m_readerCumulative = 0;
-        if (!parseResult) // Invalidate
+        if (!parseResult) {
+            m_project->proFileParseError(tr("Error while parsing file %1. Giving up.").arg(m_projectFilePath));
             invalidate();
+        }
         return;
     }
 
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index ab57f72f5937f07dd4817f95f45f889abe3b446c..c747106c225fa8eb9cf319c75ffbd504d4d5c70e 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -932,7 +932,8 @@ ProFileReader *Qt4Project::createProFileReader(Qt4ProFileNode *qt4ProFileNode)
 
     ProFileReader *reader = new ProFileReader(m_proFileOption);
     connect(reader, SIGNAL(errorFound(QString)),
-            this, SLOT(proFileParseError(QString)));
+            this, SLOT(proFileParseError(QString)),
+            Qt::QueuedConnection);
 
     reader->setOutputDir(qt4ProFileNode->buildDir());