diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 5eda4b77e54ff171c2f081bc3b6f916807352a1a..43bc047f35d53c15d00db55713baf3c664b0c7e2 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -214,7 +214,6 @@ private:
     Document::Ptr m_currentDoc;
     QSet<QString> m_todo;
     QSet<QString> m_processed;
-    QFutureSynchronizer<void> m_synchronizer;
 };
 
 } // namespace Internal
@@ -224,9 +223,7 @@ CppPreprocessor::CppPreprocessor(QPointer<CppModelManager> modelManager)
     : snapshot(modelManager->snapshot()),
       m_modelManager(modelManager),
       preprocess(this, &env)
-{
-    m_synchronizer.setCancelOnWait(true);
-}
+{ }
 
 CppPreprocessor::~CppPreprocessor()
 { }
@@ -510,7 +507,9 @@ void CppPreprocessor::sourceNeeded(QString &fileName, IncludeType type,
     snapshot.insert(doc->fileName(), doc);
     m_todo.remove(fileName);
 
-    m_synchronizer.addFuture(QtConcurrent::run(Process(m_modelManager), doc));
+    Process process(m_modelManager);
+
+    process(doc);
 
     (void) switchDocument(previousDoc);
 }