diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 2ffd37c14e53f945460e7dc4e45b154e780c3223..08ee406fc89ac23e405e4479cfa046d5928272bc 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -900,6 +900,19 @@ QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo &newProjectIn
     return indexerFuture;
 }
 
+ProjectInfo CppModelManager::updateCompilerCallDataForProject(
+        ProjectExplorer::Project *project,
+        ProjectInfo::CompilerCallData &compilerCallData)
+{
+    QMutexLocker locker(&d->m_projectMutex);
+
+    ProjectInfo projectInfo = d->m_projectToProjectsInfo.value(project, ProjectInfo());
+    projectInfo.setCompilerCallData(compilerCallData);
+    d->m_projectToProjectsInfo.insert(project, projectInfo);
+
+    return projectInfo;
+}
+
 ProjectPart::Ptr CppModelManager::projectPartForId(const QString &projectPartId) const
 {
     return d->m_projectPartIdToProjectProjectPart.value(projectPartId);
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index 3a42c650344f2a02d82e92ceb09c7edb98877b7f..2e296ef63902c8d95c5d5ffb8a4626269bb2ed74 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -29,6 +29,7 @@
 #include "cpptools_global.h"
 
 #include "cppmodelmanagersupport.h"
+#include "projectinfo.h"
 #include "projectpart.h"
 #include "projectpartheaderpath.h"
 
@@ -56,7 +57,6 @@ class CppEditorDocumentHandle;
 class CppIndexingSupport;
 class SymbolFinder;
 class WorkingCopy;
-class ProjectInfo;
 
 namespace Internal {
 class CppSourceProcessor;
@@ -95,6 +95,8 @@ public:
     QList<ProjectInfo> projectInfos() const;
     ProjectInfo projectInfo(ProjectExplorer::Project *project) const;
     QFuture<void> updateProjectInfo(const ProjectInfo &newProjectInfo);
+    ProjectInfo updateCompilerCallDataForProject(ProjectExplorer::Project *project,
+                                                 ProjectInfo::CompilerCallData &compilerCallData);
 
     /// \return The project part with the given project file
     ProjectPart::Ptr projectPartForId(const QString &projectPartId) const;
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index 51928b7a87cab78bf49377992c9316a68e20fe01..b9f6556d108a5f4174914c5b31b8cb601388683e 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -935,9 +935,7 @@ void QbsProject::updateCppCompilerCallData()
         }
     }
 
-    m_codeModelProjectInfo.setCompilerCallData(data);
-    const QFuture<void> future = modelManager->updateProjectInfo(m_codeModelProjectInfo);
-    QTC_CHECK(future.isFinished()); // No reparse of files expected
+    m_codeModelProjectInfo = modelManager->updateCompilerCallDataForProject(this, data);
 }
 
 void QbsProject::updateQmlJsCodeModel()