diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index 9eeb1311eb4f83cdc7890a13148a4bdf9e9addc1..305f8a39beb8421fa70ea76d586a60c8a033c9c0 100644
--- a/src/libs/cplusplus/CppDocument.cpp
+++ b/src/libs/cplusplus/CppDocument.cpp
@@ -558,7 +558,7 @@ QStringList Snapshot::filesDependingOn(const QString &fileName) const
     return deps;
 }
 
-QMap<QString, QStringList> Snapshot::dependencyTable() const
+QHash<QString, QStringList> Snapshot::dependencyTable() const
 {
     const int N = size();
     QVector<QString> files(N);
@@ -568,7 +568,7 @@ QMap<QString, QStringList> Snapshot::dependencyTable() const
 
     dependency_helper(files, fileIndex, includes, includeMap);
 
-    QMap<QString, QStringList> depMap;
+    QHash<QString, QStringList> depMap;
 
     for (int index = 0; index < files.size(); ++index) {
         QStringList deps;
diff --git a/src/libs/cplusplus/CppDocument.h b/src/libs/cplusplus/CppDocument.h
index 22129ad187088d1e88ede0ad9c879f6373574ba7..19be7e7660b2eabe42d6758d8c3b556bd26fadde 100644
--- a/src/libs/cplusplus/CppDocument.h
+++ b/src/libs/cplusplus/CppDocument.h
@@ -33,15 +33,10 @@
 #include <CPlusPlusForwardDeclarations.h>
 #include "Macro.h"
 
-#include <QByteArray>
-#include <QFileInfo>
-#include <QList>
-#include <QMap>
-#include <QBitArray>
-#include <QSharedPointer>
-#include <QString>
-#include <QStringList>
-#include <QDateTime>
+#include <QtCore/QSharedPointer>
+#include <QtCore/QDateTime>
+#include <QtCore/QHash>
+#include <QtCore/QFileInfo>
 
 namespace CPlusPlus {
 
@@ -323,7 +318,7 @@ private:
 
 class CPLUSPLUS_EXPORT Snapshot
 {
-    typedef QMap<QString, Document::Ptr> _Base;
+    typedef QHash<QString, Document::Ptr> _Base;
 
 public:
     Snapshot();
@@ -358,7 +353,7 @@ public:
     QSharedPointer<NamespaceBinding> globalNamespaceBinding(Document::Ptr doc) const;
 
     QStringList filesDependingOn(const QString &fileName) const;
-    QMap<QString, QStringList> dependencyTable() const;
+    QHash<QString, QStringList> dependencyTable() const;
 
 private:
     void simplified_helper(Document::Ptr doc, Snapshot *snapshot) const;
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index cbd0bce1df0d552907aa32419d29dce81e28181a..c09bcf6c7aebe2eb94eded701e59465068f491d4 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -41,8 +41,6 @@
 
 #include <QtDebug>
 
-using namespace CPlusPlus;
-
 QT_BEGIN_NAMESPACE
 uint qHash(const CPlusPlus::LookupItem &key)
 {
@@ -52,6 +50,13 @@ uint qHash(const CPlusPlus::LookupItem &key)
 }
 QT_END_NAMESPACE
 
+uint CPlusPlus::qHash(const CPlusPlus::LookupItem &key)
+{
+    return QT_PREPEND_NAMESPACE(qHash)(key);
+}
+
+using namespace CPlusPlus;
+
 /////////////////////////////////////////////////////////////////////
 // LookupContext
 /////////////////////////////////////////////////////////////////////
diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h
index bced5f4cf49073a0e29e841f3dfb6a2ee3dffe52..1430652107f52c13a8bc570baf709907b766adc3 100644
--- a/src/libs/cplusplus/LookupContext.h
+++ b/src/libs/cplusplus/LookupContext.h
@@ -228,12 +228,12 @@ private:
     QList<Scope *> _visibleScopes;
 };
 
-} // end of namespace CPlusPlus
+uint qHash(const CPlusPlus::LookupItem &result);
 
+} // end of namespace CPlusPlus
 
 QT_BEGIN_NAMESPACE
 uint qHash(const CPlusPlus::LookupItem &result);
 QT_END_NAMESPACE
 
-
 #endif // CPLUSPLUS_LOOKUPCONTEXT_H
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h
index 1976df75eab41cac2dde91932c0517a51d9beebb..2d3b488ea0e13c0ad225d97f10019bb941d89a26 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.h
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.h
@@ -35,6 +35,7 @@
 #include <QtCore/QObject>
 #include <QtCore/QMap>
 #include <QtCore/QPointer>
+#include <QtCore/QStringList>
 
 namespace ProjectExplorer {
     class Project;