diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index d67fab8bd534736cd61354af69d31e978a122623..a33e595a72b6bc669fd129b7512fb72a90d5149b 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -811,8 +811,12 @@ QList<ProjectPart::Ptr> CppModelManager::projectPartFromDependencies(const QStri
 {
     QSet<ProjectPart::Ptr> parts;
     const QStringList deps = snapshot().filesDependingOn(fileName);
-    foreach (const QString &dep, deps)
-        parts.unite(QSet<ProjectPart::Ptr>::fromList(d->m_fileToProjectParts.value(dep)));
+
+    {
+        QMutexLocker locker(&d->m_projectMutex);
+        foreach (const QString &dep, deps)
+            parts.unite(QSet<ProjectPart::Ptr>::fromList(d->m_fileToProjectParts.value(dep)));
+    }
 
     return parts.values();
 }