diff --git a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
index 07c02e029854ed054a496d939273d0131d0c2729..22daabf9de76977b5c584b99c826e29376cea702 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
@@ -31,6 +31,7 @@
 #include "cmakeproject.h"
 #include <projectexplorer/environmenteditmodel.h>
 #include <QtGui/QVBoxLayout>
+#include <QtGui/QCheckBox>
 
 namespace {
 bool debug = false;
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index 61a4a81448744711baeb18cbe9c3b80795be28d5..8db7559329a8c1d5cb08505ca8d3192079bafa63 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -30,6 +30,8 @@
 #include "cmakeprojectconstants.h"
 #include "cmakeproject.h"
 
+#include <projectexplorer/projectexplorer.h>
+
 #include <QtGui/QFormLayout>
 #include <QtGui/QGroupBox>
 #include <QtGui/QCheckBox>
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 03eebb88ba916edc2fc22cb24ef418007fb25672..bb8a1cc976763b8489d48ffa92e9365fc1a0ea07 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -66,6 +66,7 @@
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/session.h>
+#include <projectexplorer/project.h>
 
 #include <texteditor/basetexteditor.h>
 #include <texteditor/basetextmark.h>
diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp
index 79a7dde5e838c9e87b07af579b4ae1055e034579..9bc4320ff3377028b61dc7658a3676d55329e2ee 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.cpp
+++ b/src/plugins/genericprojectmanager/genericmakestep.cpp
@@ -34,6 +34,7 @@
 
 #include <extensionsystem/pluginmanager.h>
 #include <projectexplorer/toolchain.h>
+#include <projectexplorer/projectexplorer.h>
 #include <utils/qtcassert.h>
 #include <coreplugin/variablemanager.h>
 
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 71a785493927bb394f44f9e6f8354092c35057ff..3b75a3f09c86e19fef3489cc3b0a61ab73125c39 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -33,6 +33,7 @@
 
 #include <projectexplorer/toolchain.h>
 #include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/persistentsettings.h>
 #include <cpptools/cppmodelmanagerinterface.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/pathchooser.h>
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 0324e1b7c80f8d288543cdc4420b60c8569976a2..81d2fa2fa967cc6b4364e826514587147ad4653a 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -58,6 +58,7 @@
 
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/project.h>
+#include <projectexplorer/projectnodes.h>
 
 #include <QtCore/QDebug>
 #include <QtCore/QDir>
diff --git a/src/plugins/projectexplorer/abstractmakestep.cpp b/src/plugins/projectexplorer/abstractmakestep.cpp
index 18a3abecd5957395d4f03a54e5f6dc054131a2f6..b08f713c018906a626ac47506a5850a81c5778bf 100644
--- a/src/plugins/projectexplorer/abstractmakestep.cpp
+++ b/src/plugins/projectexplorer/abstractmakestep.cpp
@@ -30,6 +30,7 @@
 #include "abstractmakestep.h"
 
 #include "projectexplorerconstants.h"
+#include "project.h"
 
 #include <extensionsystem/pluginmanager.h>
 #include <utils/qtcassert.h>
diff --git a/src/plugins/projectexplorer/abstractmakestep.h b/src/plugins/projectexplorer/abstractmakestep.h
index a773983b71b5010c96d4ca7d03ae416822ade693..813349c70490c75e9f815d9788cdc7f2754848f3 100644
--- a/src/plugins/projectexplorer/abstractmakestep.h
+++ b/src/plugins/projectexplorer/abstractmakestep.h
@@ -30,9 +30,8 @@
 #ifndef ABSTRACTMAKESTEP_H
 #define ABSTRACTMAKESTEP_H
 
-#include "abstractprocessstep.h"
-#include "projectexplorer.h"
 #include "projectexplorer_export.h"
+#include "abstractprocessstep.h"
 
 namespace ProjectExplorer {
 class BuildStep;
diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp
index bd114e87996405994c5bb57360e604b1c1222891..cc3fa45a9ecfe50acaa92b70ec55e742077b4a1b 100644
--- a/src/plugins/projectexplorer/buildmanager.cpp
+++ b/src/plugins/projectexplorer/buildmanager.cpp
@@ -34,6 +34,7 @@
 #include "compileoutputwindow.h"
 #include "projectexplorerconstants.h"
 #include "projectexplorer.h"
+#include "project.h"
 #include "projectexplorersettings.h"
 #include "taskwindow.h"
 
@@ -45,6 +46,9 @@
 
 #include <QtCore/QDir>
 #include <QtCore/QTimer>
+
+#include <qtconcurrent/QtConcurrentTools>
+
 #include <QtGui/QHeaderView>
 #include <QtGui/QIcon>
 #include <QtGui/QLabel>
diff --git a/src/plugins/projectexplorer/buildmanager.h b/src/plugins/projectexplorer/buildmanager.h
index 2a461270ea0f40b1fd1865856f4301762d783fd0..3278064e57779273e9b3d5a81bbc3f7d319f7afb 100644
--- a/src/plugins/projectexplorer/buildmanager.h
+++ b/src/plugins/projectexplorer/buildmanager.h
@@ -36,9 +36,7 @@
 #include <QtCore/QStringList>
 #include <QtCore/QList>
 #include <QtCore/QHash>
-#include <QtCore/QtConcurrentRun>
 #include <QtCore/QFutureWatcher>
-#include <qtconcurrent/QtConcurrentTools>
 
 namespace ProjectExplorer {
 
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 28665c27525cf427c2e0b7e7507d7059f3f48cca..8c47901b27cee372ed349ec28f8c40386cbec132 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -40,6 +40,7 @@
 #include <QtGui/QInputDialog>
 #include <QtGui/QLabel>
 #include <QtGui/QVBoxLayout>
+#include <QtGui/QMenu>
 
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp
index 1a4efe7b0405fdb7faa2c9e03634dd7ea90da61c..77c4791243f2016fd25bccc8318e0482c4d0174d 100644
--- a/src/plugins/projectexplorer/buildstep.cpp
+++ b/src/plugins/projectexplorer/buildstep.cpp
@@ -29,6 +29,7 @@
 
 #include "buildstep.h"
 #include "buildconfiguration.h"
+#include "project.h"
 
 #include <utils/qtcassert.h>
 #include <QtGui/QLayout>
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index 23062aa0abe9e16e65a0eb1c738a586122054fd9..360bd0f08adb2bcad8edaae4e0ce07f9d6da9f8e 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -31,7 +31,6 @@
 #define BUILDSTEP_H
 
 #include "buildparserinterface.h"
-#include "project.h"
 #include "projectexplorer_export.h"
 
 #include <QtGui/QWidget>
@@ -39,6 +38,7 @@
 
 namespace ProjectExplorer {
 
+class Project;
 namespace Internal {
 class BuildConfiguration;
 }
diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp
index 5939547f324754c730405edc70fda4fab9514631..f413f87353d5980fd1fb2275a7ba3a94eb9b53f2 100644
--- a/src/plugins/projectexplorer/buildstepspage.cpp
+++ b/src/plugins/projectexplorer/buildstepspage.cpp
@@ -39,6 +39,7 @@
 
 #include <QtGui/QLabel>
 #include <QtGui/QPushButton>
+#include <QtGui/QMenu>
 
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
index ede1f5b5202b2bbffa59c0879bd9d05d5a47b485..c1bf25b3dcbe2d9bf07775e0c7d9ac9f7b00d869 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
@@ -30,10 +30,13 @@
 #include "customexecutablerunconfiguration.h"
 #include "environment.h"
 #include "project.h"
+#include "persistentsettings.h"
+#include "environmenteditmodel.h"
 
 #include <coreplugin/icore.h>
 #include <projectexplorer/debugginghelper.h>
 #include <utils/detailsbutton.h>
+#include <utils/pathchooser.h>
 
 #include <QtGui/QCheckBox>
 #include <QtGui/QFormLayout>
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
index 99300a78aba1604fb36680f19ca1d8147fb84e01..3c47b219daa7a421514971c44f0a4bbb5a46fe68 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
@@ -32,19 +32,24 @@
 
 #include "applicationrunconfiguration.h"
 
-#include <utils/pathchooser.h>
-#include <projectexplorer/environmenteditmodel.h>
-
-#include <QtGui/QToolButton>
+#include <QtGui/QWidget>
 
 QT_BEGIN_NAMESPACE
 class QCheckBox;
 class QLineEdit;
 class QComboBox;
+class QLabel;
+class QAbstractButton;
 QT_END_NAMESPACE
 
+namespace Core {
+namespace Utils {
+class PathChooser;
+}
+}
+
 namespace ProjectExplorer {
-    
+class EnvironmentWidget;
 namespace Internal {
     class CustomExecutableConfigurationWidget;
 }
diff --git a/src/plugins/projectexplorer/dependenciespanel.cpp b/src/plugins/projectexplorer/dependenciespanel.cpp
index 697681c17818ef999d212f9e3fb3d3aa555c08f9..f7e2078b9b134b893e9ac8a6f2ec918b0e3ecfb0 100644
--- a/src/plugins/projectexplorer/dependenciespanel.cpp
+++ b/src/plugins/projectexplorer/dependenciespanel.cpp
@@ -34,6 +34,7 @@
 #include <utils/detailsbutton.h>
 
 #include <coreplugin/fileiconprovider.h>
+#include <coreplugin/ifile.h>
 
 #include <QtCore/QVector>
 #include <QtCore/QDebug>
diff --git a/src/plugins/projectexplorer/editorsettingspropertiespage.cpp b/src/plugins/projectexplorer/editorsettingspropertiespage.cpp
index 6ee531c02634713a29c7cde8b36aded1b1d379d2..82b185a4baba4ac1bb262b5546678694640bdfd4 100644
--- a/src/plugins/projectexplorer/editorsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/editorsettingspropertiespage.cpp
@@ -29,6 +29,7 @@
 
 #include "editorsettingspropertiespage.h"
 #include "editorconfiguration.h"
+#include "project.h"
 
 #include <QtCore/QTextCodec>
 
diff --git a/src/plugins/projectexplorer/environment.h b/src/plugins/projectexplorer/environment.h
index e8cd10db4d6bb357208aefd12d760bc708f78d09..921b6795c6aeb53a6b3449aedb8a142e2e1f4236 100644
--- a/src/plugins/projectexplorer/environment.h
+++ b/src/plugins/projectexplorer/environment.h
@@ -72,8 +72,8 @@ public:
     void unset(const QString &key);
     void modify(const QList<EnvironmentItem> & list);
 
-    void appendOrSet(const QString &key, const QString &value, const QString &sep = "");
-    void prependOrSet(const QString &key, const QString &value, const QString &sep = "");
+    void appendOrSet(const QString &key, const QString &value, const QString &sep = QString());
+    void prependOrSet(const QString &key, const QString &value, const QString &sep = QString());
 
     void appendOrSetPath(const QString &value);
     void prependOrSetPath(const QString &value);
diff --git a/src/plugins/projectexplorer/environmenteditmodel.cpp b/src/plugins/projectexplorer/environmenteditmodel.cpp
index 22fbc800dffcffe1d4c3f827f3e0e18d18e2b67e..7ca0af8315d31a8cd0fc7ac8ec0a947d73bb2892 100644
--- a/src/plugins/projectexplorer/environmenteditmodel.cpp
+++ b/src/plugins/projectexplorer/environmenteditmodel.cpp
@@ -34,6 +34,13 @@
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QHeaderView>
 #include <QtGui/QToolButton>
+#include <QtCore/QDebug>
+#include <QtGui/QWidget>
+#include <QtGui/QCheckBox>
+#include <QtGui/QTreeView>
+#include <QtGui/QPushButton>
+#include <QtGui/QLabel>
+#include <QtGui/QStackedWidget>
 
 using namespace ProjectExplorer;
 
diff --git a/src/plugins/projectexplorer/environmenteditmodel.h b/src/plugins/projectexplorer/environmenteditmodel.h
index 85d3e8d04fd3b07765a76dab61a7a7fcad7ecb6b..d6572340b710b5e79e70da647e44373ad81039c5 100644
--- a/src/plugins/projectexplorer/environmenteditmodel.h
+++ b/src/plugins/projectexplorer/environmenteditmodel.h
@@ -34,13 +34,15 @@
 
 #include <QtCore/QString>
 #include <QtCore/QAbstractItemModel>
-#include <QtCore/QDebug>
 #include <QtGui/QWidget>
-#include <QtGui/QCheckBox>
-#include <QtGui/QTreeView>
-#include <QtGui/QPushButton>
-#include <QtGui/QLabel>
-#include <QtGui/QStackedWidget>
+
+QT_BEGIN_NAMESPACE
+class QCheckBox;
+class QTreeView;
+class QPushButton;
+class QLabel;
+class QStackedWidget;
+QT_END_NAMESPACE
 
 namespace ProjectExplorer {
 
diff --git a/src/plugins/projectexplorer/iprojectproperties.h b/src/plugins/projectexplorer/iprojectproperties.h
index cdc299936bf63f8ac5053764efa017f24ae7e3d3..8f15bd34750c33369290928ea371251f12550cf0 100644
--- a/src/plugins/projectexplorer/iprojectproperties.h
+++ b/src/plugins/projectexplorer/iprojectproperties.h
@@ -31,12 +31,11 @@
 #define IPROJECTPROPERTIES_H
 
 #include "projectexplorer_export.h"
-#include "project.h"
 
 #include <coreplugin/icontext.h>
 
 namespace ProjectExplorer {
-
+class Project;
 class PropertiesPanel;
 
 class PROJECTEXPLORER_EXPORT IPanelFactory : public QObject
diff --git a/src/plugins/projectexplorer/persistentsettings.cpp b/src/plugins/projectexplorer/persistentsettings.cpp
index 10726f58039fa16cfe2d53714945a08e963b99dd..8c0de8a22ff9c6c38486c9b4bbdea4016c6d51e1 100644
--- a/src/plugins/projectexplorer/persistentsettings.cpp
+++ b/src/plugins/projectexplorer/persistentsettings.cpp
@@ -34,6 +34,7 @@
 #include <QtCore/QVariant>
 #include <QtXml/QDomDocument>
 #include <QtXml/QDomCDATASection>
+#include <QtXml/QDomElement>
 
 
 using namespace ProjectExplorer;
diff --git a/src/plugins/projectexplorer/persistentsettings.h b/src/plugins/projectexplorer/persistentsettings.h
index c291dbca34bc76fd30785605e7d2fe0ae50fcd64..bdead85b6a9f0e214ce4a215503e59ade4775bab 100644
--- a/src/plugins/projectexplorer/persistentsettings.h
+++ b/src/plugins/projectexplorer/persistentsettings.h
@@ -34,7 +34,10 @@
 
 #include <QtCore/QMap>
 #include <QtCore/QVariant>
-#include <QtXml/QDomElement>
+
+QT_BEGIN_NAMESPACE
+class QDomElement;
+QT_END_NAMESPACE
 
 namespace ProjectExplorer {
 
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index cd7b713cdb9b7a82aa31113a5a4eaaa7021a2a68..da5da51a058f467a188513f484c0faed3442d838 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -29,6 +29,10 @@
 
 #include "project.h"
 
+#include "persistentsettings.h"
+#include "buildconfiguration.h"
+#include "environment.h"
+#include "projectnodes.h"
 #include "buildstep.h"
 #include "projectexplorer.h"
 #include "runconfiguration.h"
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index 456646c970d6a778b2fa4dcabdb16c95218ea883..9070fb51243c01082b5651c247ed2402e2273946 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -30,19 +30,15 @@
 #ifndef PROJECT_H
 #define PROJECT_H
 
-#include "persistentsettings.h"
 #include "projectexplorer_export.h"
-#include "buildconfiguration.h"
-#include "environment.h"
-#include "projectnodes.h"
 
 #include <QtCore/QSharedPointer>
 #include <QtCore/QObject>
-#include <QtCore/QModelIndex>
-#include <QtCore/QFileInfo>
 #include <QtGui/QFileSystemModel>
-#include <QtGui/QMenu>
-#include <QtGui/QIcon>
+
+QT_BEGIN_NAMESPACE
+class QMenu;
+QT_END_NAMESPACE
 
 namespace Core {
 class IFile;
@@ -56,6 +52,14 @@ class BuildConfigWidget;
 class IProjectManager;
 class RunConfiguration;
 class EditorConfiguration;
+class Environment;
+class ProjectNode;
+class PersistentSettingsWriter;
+class PersistentSettingsReader;
+
+namespace Internal {
+class BuildConfiguration;
+}
 
 class PROJECTEXPLORER_EXPORT Project
     : public QObject
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index df19d838b9df6df15afaf3658381acc1f980e748..0c2ccb9c66d95bfd9ef101b668695caa4e6571c2 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "projectexplorer.h"
+#include "project.h"
 #include "projectexplorersettings.h"
 #include "applicationrunconfiguration.h"
 #include "allprojectsfilter.h"
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp
index da793af74a83eb705fab463faa22042141703085..55e1a54298217e872853f9de47b69ae9f483c100 100644
--- a/src/plugins/projectexplorer/projectmodels.cpp
+++ b/src/plugins/projectexplorer/projectmodels.cpp
@@ -31,6 +31,7 @@
 
 #include "project.h"
 #include "projectexplorerconstants.h"
+#include "projectnodes.h"
 
 #include <coreplugin/fileiconprovider.h>
 #include <utils/qtcassert.h>
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index dc22cc1f5da429b1576cf071f6f70e8525fa7ceb..edcbf4c08da08ce0199fa361af712d6375ab2b4d 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -48,6 +48,7 @@
 #include <QtGui/QFocusEvent>
 #include <QtGui/QAction>
 #include <QtGui/QPalette>
+#include <QtGui/QMenu>
 
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 585b8620631e08c340ca6b50c01e3ccbbeef6392..fd5b95e9ab9d3b513fe4f439cabfc3215d299185 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -30,6 +30,7 @@
 #include "projectwindow.h"
 
 #include "project.h"
+#include "environment.h"
 #include "projectexplorer.h"
 #include "projectexplorerconstants.h"
 #include "iprojectproperties.h"
@@ -40,6 +41,7 @@
 #include <coreplugin/minisplitter.h>
 #include <coreplugin/fileiconprovider.h>
 #include <coreplugin/icore.h>
+#include <coreplugin/ifile.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/styledbar.h>
 
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 52c9ac5de669095295398dfaa248ae12c07a2d4f..c9765ad5cd53058cefc81c471f184104eee066fc 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -29,6 +29,7 @@
 
 #include "runconfiguration.h"
 #include "project.h"
+#include "persistentsettings.h"
 
 #include <QtCore/QTimer>
 
diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp
index e31e8ef3110411ef8a195076dfddd5fa5fdd9c78..2fd64f19752563a2eba06fc568c181c957d89407 100644
--- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp
@@ -29,6 +29,7 @@
 
 #include "runsettingspropertiespage.h"
 #include "runconfiguration.h"
+#include "project.h"
 
 #include "ui_runsettingspropertiespage.h"
 
@@ -38,6 +39,7 @@
 
 #include <QtCore/QDebug>
 #include <QtCore/QPair>
+#include <QtGui/QMenu>
 
 namespace ProjectExplorer {
 namespace Internal {
diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.h b/src/plugins/projectexplorer/runsettingspropertiespage.h
index 5990779914a57155028ce47f2b6db88daa4de40e..17f2d0cd50340bc7e5be4e047ebfe0d3dd5c1ebf 100644
--- a/src/plugins/projectexplorer/runsettingspropertiespage.h
+++ b/src/plugins/projectexplorer/runsettingspropertiespage.h
@@ -34,6 +34,10 @@
 
 #include <QtGui/QWidget>
 
+QT_BEGIN_NAMESPACE
+class QMenu;
+QT_END_NAMESPACE
+
 namespace ProjectExplorer {
 namespace Internal {
 
diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp
index 6bf6a7a6033e8a12d9ac66d583ca2e5a9d5c4dae..fcf194e81e6d4b4a4ff539afd5c6a56f83ebb1e1 100644
--- a/src/plugins/projectexplorer/session.cpp
+++ b/src/plugins/projectexplorer/session.cpp
@@ -34,6 +34,7 @@
 #include "projectexplorerconstants.h"
 #include "nodesvisitor.h"
 #include "editorconfiguration.h"
+#include "persistentsettings.h"
 
 #include <coreplugin/icore.h>
 #include <coreplugin/imode.h>
diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h
index e8ce0092c44cf3d40d8f8fef81790154c5e63c68..eb9f027b368e6d8b9a501b40a074a21d4b2d158b 100644
--- a/src/plugins/projectexplorer/session.h
+++ b/src/plugins/projectexplorer/session.h
@@ -33,19 +33,20 @@
 #include "projectexplorer_export.h"
 #include "projectnodes.h"
 
-#include <coreplugin/ifile.h>
-
-#include <QtCore/QObject>
-#include <QtCore/QAbstractItemModel>
 #include <QtCore/QHash>
 #include <QtCore/QList>
 #include <QtCore/QString>
 #include <QtCore/QStringList>
 
+QT_BEGIN_NAMESPACE
+class QAbstractItemModel;
+QT_END_NAMESPACE
+
 namespace Core {
 class ICore;
 class IMode;
 class IEditor;
+class IFile;
 }
 
 namespace ProjectExplorer {
diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp
index dac5ad20a2ed6d75972f297639d886a7b3cc3087..15568937c06568fd9f38966922b0be3a8aa4c6cd 100644
--- a/src/plugins/projectexplorer/toolchain.cpp
+++ b/src/plugins/projectexplorer/toolchain.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "toolchain.h"
+#include "project.h"
 #include "cesdkhandler.h"
 #include "projectexplorersettings.h"
 
diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index 30b0848ffc3268b09311246b5a4448e36f7d18d1..41fe8fdc866d52a94b7f9ffffffc98e44977d46b 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -30,13 +30,18 @@
 #ifndef TOOLCHAIN_H
 #define TOOLCHAIN_H
 
+#include "projectexplorer_export.h"
 #include "environment.h"
-#include "project.h"
+
 #include <QtCore/QString>
 #include <QtCore/QPair>
+#include <QtCore/QMetaType>
 
 namespace ProjectExplorer {
 
+class Environment;
+class Project;
+
 class PROJECTEXPLORER_EXPORT HeaderPath
 {
 public:
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 9d7bcde602f46ba946e03e9ba77ca984e86c1186..a7651566a1d4d8f9db3190e3e521b26775752baa 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -32,6 +32,7 @@
 #include "qmlmakestep.h"
 
 #include <projectexplorer/toolchain.h>
+#include <projectexplorer/persistentsettings.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/pathchooser.h>
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index ca17cbfe66ae41add0389a1a4621d1b1af67a2a7..4599e16dbf44516c0788b61cd70d1ffb6ef57d6d 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -41,6 +41,7 @@
 #include <utils/qtcassert.h>
 #include <utils/pathchooser.h>
 #include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/persistentsettings.h>
 #include <projectexplorer/project.h>
 
 #include <debugger/debuggermanager.h>
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp
index c17daed13d91e447d996e7388f94311cd78eef74..0e0fdb468119dda4258cdb01276b11ee0e3d8d3a 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp
@@ -40,6 +40,7 @@
 #include <utils/qtcassert.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/project.h>
+#include <projectexplorer/persistentsettings.h>
 
 using namespace ProjectExplorer;
 using namespace Qt4ProjectManager::Internal;
diff --git a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp
index 248a4892445dd9892992f1c501f97d4d60deba17..be348ef350291429e66e6d233b39cb474a5d005d 100644
--- a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp
@@ -32,6 +32,8 @@
 
 #include <projectexplorer/environmenteditmodel.h>
 
+#include <QtGui/QCheckBox>
+
 namespace {
 bool debug = false;
 }
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index 99930d066dc942597ddc95669af9f547adadaf79..249386e2eb096d5635dd372348cc8bcef755b89d 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -40,6 +40,7 @@
 #include <coreplugin/ifile.h>
 #include <projectexplorer/buildstep.h>
 #include <projectexplorer/environmenteditmodel.h>
+#include <projectexplorer/persistentsettings.h>
 #include <utils/qtcassert.h>
 #include <utils/detailsbutton.h>