diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 3a934f6007e73bdbf3bb53f0878a2fa9b02f4658..882fe1d6def47e601730cc4eb10f1cc7abfedfd0 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -1024,10 +1024,15 @@ void Qt4ProFileNode::setupReader()
 bool Qt4ProFileNode::evaluate()
 {
     bool parserError = false;
-    if (!m_readerExact->readProFile(m_projectFilePath))
-        parserError = true;
-    if (!m_readerCumulative->readProFile(m_projectFilePath))
+    if (ProFile *pro = m_readerExact->parsedProFile(m_projectFilePath)) {
+        if (!m_readerExact->accept(pro))
+            parserError = true;
+        if (!m_readerCumulative->accept(pro))
+            parserError = true;
+        pro->deref();
+    } else {
         parserError = true;
+    }
     return parserError;
 }