diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp
index 75de80ea9d9413d6b0c15802c037624a63b3d9bb..70f94c7bdb5763c2d74b183627c9560a7cdf89a3 100644
--- a/src/plugins/bazaar/bazaarclient.cpp
+++ b/src/plugins/bazaar/bazaarclient.cpp
@@ -30,6 +30,8 @@
 #include "bazaarclient.h"
 #include "constants.h"
 
+#include <coreplugin/id.h>
+
 #include <vcsbase/vcsbaseplugin.h>
 #include <vcsbase/vcsoutputwindow.h>
 #include <vcsbase/vcsbaseeditorparameterwidget.h>
diff --git a/src/plugins/bazaar/bazaarcommitwidget.cpp b/src/plugins/bazaar/bazaarcommitwidget.cpp
index 99d4f12c639da9c54b7f02d9e1865f7b1a78342d..ad2084be0a5a72d45c5a83e4c85065d319f76c5e 100644
--- a/src/plugins/bazaar/bazaarcommitwidget.cpp
+++ b/src/plugins/bazaar/bazaarcommitwidget.cpp
@@ -32,6 +32,7 @@
 
 #include <texteditor/texteditorsettings.h>
 #include <texteditor/fontsettings.h>
+#include <utils/completingtextedit.h>
 #include <utils/qtcassert.h>
 
 #include <QSyntaxHighlighter>
diff --git a/src/plugins/bazaar/bazaarcontrol.cpp b/src/plugins/bazaar/bazaarcontrol.cpp
index aff54e5814d2a55665942a472000295559c8ede1..c74ba8f0f936609b2a60252ac9bbf961495f17aa 100644
--- a/src/plugins/bazaar/bazaarcontrol.cpp
+++ b/src/plugins/bazaar/bazaarcontrol.cpp
@@ -32,6 +32,8 @@
 
 #include <vcsbase/vcsbaseconstants.h>
 
+#include <utils/fileutils.h>
+
 #include <QFileInfo>
 #include <QVariant>
 #include <QStringList>
diff --git a/src/plugins/cvs/cvscontrol.cpp b/src/plugins/cvs/cvscontrol.cpp
index 2aa38aeaea26f02ba708dca5850776e9cb9fff91..ff274a1390cc4dea0ad68b5b3a753a9a03bcd089 100644
--- a/src/plugins/cvs/cvscontrol.cpp
+++ b/src/plugins/cvs/cvscontrol.cpp
@@ -34,6 +34,8 @@
 
 #include <vcsbase/vcsbaseconstants.h>
 
+#include <utils/fileutils.h>
+
 #include <QFileInfo>
 
 using namespace Cvs;
diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp
index aa15743340997c0067f4dea9a2c4f9e3396cce05..89cc06ed9c796188c51d5a91944c8b4ed23fcc5c 100644
--- a/src/plugins/git/gitsettings.cpp
+++ b/src/plugins/git/gitsettings.cpp
@@ -30,6 +30,7 @@
 
 #include "gitsettings.h"
 
+#include <utils/fileutils.h>
 #include <utils/hostosinfo.h>
 #include <QCoreApplication>
 
diff --git a/src/plugins/git/gitsubmiteditorwidget.cpp b/src/plugins/git/gitsubmiteditorwidget.cpp
index 582dea38c7da19bbebe6ed53f8f05c5178a8ab3d..f66991d388698a5bcee5dfdea465e56a81a21655 100644
--- a/src/plugins/git/gitsubmiteditorwidget.cpp
+++ b/src/plugins/git/gitsubmiteditorwidget.cpp
@@ -33,6 +33,8 @@
 #include "githighlighters.h"
 #include "logchangedialog.h"
 
+#include <utils/completingtextedit.h>
+
 #include <QRegExpValidator>
 #include <QTextEdit>
 
diff --git a/src/plugins/mercurial/mercurialcommitwidget.cpp b/src/plugins/mercurial/mercurialcommitwidget.cpp
index 320e773afd9dd9ca17ac391028fc04b8e8273fc7..cfcbf759d06e9d72ae24f4580ba7929d3b7d6b07 100644
--- a/src/plugins/mercurial/mercurialcommitwidget.cpp
+++ b/src/plugins/mercurial/mercurialcommitwidget.cpp
@@ -34,6 +34,7 @@
 #include <texteditor/fontsettings.h>
 #include <texteditor/syntaxhighlighter.h>
 #include <texteditor/texteditorconstants.h>
+#include <utils/completingtextedit.h>
 #include <utils/qtcassert.h>
 
 #include <QRegExp>
diff --git a/src/plugins/mercurial/mercurialcontrol.cpp b/src/plugins/mercurial/mercurialcontrol.cpp
index fbbfe2024610c581da8a5a38f26a7af428935a99..8482d7035383af9f326c7dd2ef63261448bb81ec 100644
--- a/src/plugins/mercurial/mercurialcontrol.cpp
+++ b/src/plugins/mercurial/mercurialcontrol.cpp
@@ -36,6 +36,8 @@
 
 #include <coreplugin/vcsmanager.h>
 
+#include <utils/fileutils.h>
+
 #include <QFileInfo>
 #include <QVariant>
 #include <QStringList>
diff --git a/src/plugins/subversion/subversioncontrol.cpp b/src/plugins/subversion/subversioncontrol.cpp
index 928dcb9bcc1626dfac4e08a8faad3b785f04734c..052abac0eb4c277a65b1cb77cb59bb8312bc821a 100644
--- a/src/plugins/subversion/subversioncontrol.cpp
+++ b/src/plugins/subversion/subversioncontrol.cpp
@@ -34,6 +34,8 @@
 
 #include <vcsbase/vcsbaseconstants.h>
 
+#include <utils/fileutils.h>
+
 #include <QFileInfo>
 
 namespace Subversion {
diff --git a/src/plugins/vcsbase/basecheckoutwizardfactory.h b/src/plugins/vcsbase/basecheckoutwizardfactory.h
index deeab0b47d69da156a9b06955011276f28c53195..46dcb74563a8dd936c4b0800d224cbb28b84b55a 100644
--- a/src/plugins/vcsbase/basecheckoutwizardfactory.h
+++ b/src/plugins/vcsbase/basecheckoutwizardfactory.h
@@ -34,10 +34,9 @@
 #include "vcsbase_global.h"
 #include <coreplugin/iwizardfactory.h>
 
-#include <utils/fileutils.h>
-
 #include <functional>
 
+namespace Utils { class FileName; }
 namespace VcsBase {
 class BaseCheckoutWizard;
 class VcsCommand;
diff --git a/src/plugins/vcsbase/basevcseditorfactory.h b/src/plugins/vcsbase/basevcseditorfactory.h
index f166799a23bc76ecc3d31a30f767ec72cd8bdb81..8abba89621f7ecde7317e2e4a0394b134e1ff4f1 100644
--- a/src/plugins/vcsbase/basevcseditorfactory.h
+++ b/src/plugins/vcsbase/basevcseditorfactory.h
@@ -32,11 +32,12 @@
 #define BASEVCSEDITORFACTORY_H
 
 #include "vcsbase_global.h"
-#include "vcsbaseeditor.h"
 
 #include <texteditor/texteditor.h>
 
 namespace VcsBase {
+class VcsBaseEditor;
+class VcsBaseEditorParameters;
 
 class VCSBASE_EXPORT VcsEditorFactory : public TextEditor::TextEditorFactory
 {
diff --git a/src/plugins/vcsbase/submiteditorwidget.h b/src/plugins/vcsbase/submiteditorwidget.h
index 7f784b2613f649b984844ee70dd341739bc27ff6..e44082345b7c43a698ce14c0e2a1c4a4823e36b8 100644
--- a/src/plugins/vcsbase/submiteditorwidget.h
+++ b/src/plugins/vcsbase/submiteditorwidget.h
@@ -33,9 +33,6 @@
 
 #include "vcsbase_global.h"
 
-#include <utils/completingtextedit.h>
-
-#include <QWidget>
 #include <QAbstractItemView>
 
 QT_BEGIN_NAMESPACE
@@ -43,6 +40,7 @@ class QAction;
 class QModelIndex;
 QT_END_NAMESPACE
 
+namespace Utils { class CompletingTextEdit; }
 namespace VcsBase {
 
 class SubmitFieldWidget;
diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h
index dacc51ac94b032fca5d75de6e60df2e9151d1264..37f355e2aeb9c041c3dc78d9cfdf643eb3ce65da 100644
--- a/src/plugins/vcsbase/vcsbaseclient.h
+++ b/src/plugins/vcsbase/vcsbaseclient.h
@@ -32,7 +32,6 @@
 #define VCSBASECLIENT_H
 
 #include "vcsbase_global.h"
-#include <coreplugin/id.h>
 
 #include <QObject>
 #include <QStringList>
@@ -45,6 +44,8 @@ class QVariant;
 class QProcessEnvironment;
 QT_END_NAMESPACE
 
+namespace Core { class Id; }
+
 namespace Utils {
 struct SynchronousProcessResponse;
 class ExitCodeInterpreter;
diff --git a/src/plugins/vcsbase/vcsbaseclientsettings.h b/src/plugins/vcsbase/vcsbaseclientsettings.h
index b999b4d3fcd93eb83563d5763bf9b976e833c030..7255fb261f90ca3e39fe81fec6d1df42569f0183 100644
--- a/src/plugins/vcsbase/vcsbaseclientsettings.h
+++ b/src/plugins/vcsbase/vcsbaseclientsettings.h
@@ -33,8 +33,6 @@
 
 #include "vcsbase_global.h"
 
-#include <utils/fileutils.h>
-
 #include <QStringList>
 #include <QVariant>
 #include <QSharedDataPointer>
@@ -43,6 +41,7 @@ QT_BEGIN_NAMESPACE
 class QSettings;
 QT_END_NAMESPACE
 
+namespace Utils { class FileName; }
 namespace VcsBase {
 
 namespace Internal { class VcsBaseClientSettingsPrivate; }
diff --git a/src/plugins/vcsbase/vcsbaseplugin.h b/src/plugins/vcsbase/vcsbaseplugin.h
index 10dbea73d08baf6560c91890ff60018ecdf3ddaf..3b92423518ddbf138bbdce127ee1127b9ef532d7 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.h
+++ b/src/plugins/vcsbase/vcsbaseplugin.h
@@ -34,7 +34,6 @@
 #include "vcsbase_global.h"
 
 #include <extensionsystem/iplugin.h>
-#include <utils/fileutils.h>
 
 #include <QSharedDataPointer>
 #include <QList>
@@ -45,7 +44,11 @@ class QAction;
 class QTextCodec;
 QT_END_NAMESPACE
 
-namespace Utils { struct SynchronousProcessResponse; }
+namespace Utils
+{
+class FileName;
+struct SynchronousProcessResponse;
+}
 
 namespace Core {
 class Context;
diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
index c383b0d648269540d015fb4d9a19129c2d4f6086..c6cc51479d559fcb829f04b0c0ccd599c42a8a8f 100644
--- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
+++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
@@ -44,6 +44,7 @@
 #include <coreplugin/icore.h>
 #include <coreplugin/editormanager/editormanager.h>
 #include <utils/checkablemessagebox.h>
+#include <utils/completingtextedit.h>
 #include <utils/synchronousprocess.h>
 #include <utils/fileutils.h>
 #include <utils/qtcassert.h>
diff --git a/src/plugins/vcsbase/vcscommand.cpp b/src/plugins/vcsbase/vcscommand.cpp
index 0cc6bbc6fbece0e6bcf7cb4e4ee9e91711f024ed..1f6c3de5334dc1ff9c0ad9d7b04939304675e171 100644
--- a/src/plugins/vcsbase/vcscommand.cpp
+++ b/src/plugins/vcsbase/vcscommand.cpp
@@ -35,6 +35,7 @@
 #include <coreplugin/vcsmanager.h>
 #include <coreplugin/icore.h>
 #include <vcsbase/vcsoutputwindow.h>
+#include <utils/fileutils.h>
 #include <utils/synchronousprocess.h>
 #include <utils/runextensions.h>
 #include <utils/qtcassert.h>
diff --git a/src/plugins/vcsbase/vcscommand.h b/src/plugins/vcsbase/vcscommand.h
index acf34d6ed0d04b572d990408ccb78230990d3bf5..f2eea82553dcac3849b76c178d9e66b943ee2930 100644
--- a/src/plugins/vcsbase/vcscommand.h
+++ b/src/plugins/vcsbase/vcscommand.h
@@ -33,9 +33,6 @@
 
 #include "vcsbase_global.h"
 
-#include <utils/fileutils.h>
-#include <utils/synchronousprocess.h>
-
 #include <QObject>
 
 QT_BEGIN_NAMESPACE
@@ -47,6 +44,12 @@ template <typename T>
 class QFutureInterface;
 QT_END_NAMESPACE
 
+namespace Utils {
+struct SynchronousProcessResponse;
+class ExitCodeInterpreter;
+class FileName;
+}
+
 namespace VcsBase {
 
 namespace Internal { class VcsCommandPrivate; }
diff --git a/src/plugins/vcsbase/vcsoutputwindow.h b/src/plugins/vcsbase/vcsoutputwindow.h
index 9ed45c6ae64f9c548a9ddb1fa9aed9fee2293b51..9d481492e485a929574d972ec11c51ebacf0d004 100644
--- a/src/plugins/vcsbase/vcsoutputwindow.h
+++ b/src/plugins/vcsbase/vcsoutputwindow.h
@@ -35,8 +35,7 @@
 
 #include  <coreplugin/ioutputpane.h>
 
-#include <utils/fileutils.h>
-
+namespace Utils { class FileName; }
 namespace VcsBase {
 
 class VCSBASE_EXPORT VcsOutputWindow : public Core::IOutputPane