diff --git a/src/plugins/coreplugin/basefilewizard.cpp b/src/plugins/coreplugin/basefilewizard.cpp
index b6b31ea888cc97289c3b85d63bbefec7bfad6b7b..17cf04615b5e1cb1025c9721a0227737ecf6fcbc 100644
--- a/src/plugins/coreplugin/basefilewizard.cpp
+++ b/src/plugins/coreplugin/basefilewizard.cpp
@@ -346,28 +346,19 @@ void WizardEventLoop::rejected()
 // ---------------- BaseFileWizardPrivate
 struct BaseFileWizardPrivate
 {
-    explicit BaseFileWizardPrivate(const Core::BaseFileWizardParameters &parameters,
-                                   Core::ICore *core);
+    explicit BaseFileWizardPrivate(const Core::BaseFileWizardParameters &parameters)
+      : m_parameters(parameters), m_wizardDialog(0)
+    {}
 
     const Core::BaseFileWizardParameters m_parameters;
     QWizard *m_wizardDialog;
-    Core::ICore *m_core;
 };
 
-Core::BaseFileWizardPrivate::BaseFileWizardPrivate(const BaseFileWizardParameters &parameters,
-                                   Core::ICore *core) :
-    m_parameters(parameters),
-    m_wizardDialog(0),
-    m_core(core)
-{
-}
-
 // ---------------- Wizard
 BaseFileWizard::BaseFileWizard(const BaseFileWizardParameters &parameters,
-                       Core::ICore *core,
                        QObject *parent) :
     IWizard(parent),
-    m_d(new BaseFileWizardPrivate(parameters, core))
+    m_d(new BaseFileWizardPrivate(parameters))
 {
 }
 
@@ -518,13 +509,14 @@ bool BaseFileWizard::postGenerateFiles(const GeneratedFiles &l, QString *errorMe
 {
     // File mode: open the editors in file mode and ensure editor pane
     const Core::GeneratedFiles::const_iterator cend = l.constEnd();
+    Core::EditorManager *em = Core::ICore::instance()->editorManager();
     for (Core::GeneratedFiles::const_iterator it = l.constBegin(); it != cend; ++it) {
-        if (!m_d->m_core->editorManager()->openEditor(it->path(), it->editorKind())) {
+        if (!em->openEditor(it->path(), it->editorKind())) {
             *errorMessage = tr("Failed to open an editor for %1").arg(it->path());
             return false;
         }
     }
-    m_d->m_core->editorManager()->ensureEditorManagerVisible();
+    em->ensureEditorManagerVisible();
     return true;
 }
 
@@ -535,7 +527,6 @@ BaseFileWizard::OverwriteResult BaseFileWizard::promptOverwrite(const QString &l
     if (debugWizard)
         qDebug() << Q_FUNC_INFO  << location << files;
 
-
     bool existingFilesFound = false;
     bool oddStuffFound = false;
 
@@ -582,7 +573,7 @@ BaseFileWizard::OverwriteResult BaseFileWizard::promptOverwrite(const QString &l
     const QString messageFormat = tr("The following files already exist in the directory %1:\n"
                                      "%2.\nWould you like to overwrite them?");
     const QString message = messageFormat.arg(location).arg(fileNamesMsgPart);
-    const bool yes = (QMessageBox::question(core()->mainWindow(),
+    const bool yes = (QMessageBox::question(Core::ICore::instance()->mainWindow(),
                                             tr("Existing files"), message,
                                             QMessageBox::Yes | QMessageBox::No,
                                             QMessageBox::No)
@@ -590,11 +581,6 @@ BaseFileWizard::OverwriteResult BaseFileWizard::promptOverwrite(const QString &l
     return yes ? OverwriteOk :  OverwriteCanceled;
 }
 
-Core::ICore *BaseFileWizard::core() const
-{
-    return m_d->m_core;
-}
-
 QList<IWizard*> BaseFileWizard::allWizards()
 {
     return ExtensionSystem::PluginManager::instance()->getObjects<IWizard>();
@@ -637,19 +623,18 @@ QString BaseFileWizard::buildFileName(const QString &path,
 
 QString BaseFileWizard::preferredSuffix(const QString &mimeType) const
 {
-    const QString rc = m_d->m_core->mimeDatabase()->preferredSuffixByType(mimeType);
+    const QString rc = Core::ICore::instance()->mimeDatabase()->preferredSuffixByType(mimeType);
     if (rc.isEmpty())
         qWarning("%s: WARNING: Unable to find a preferred suffix for %s.",
                  Q_FUNC_INFO, mimeType.toUtf8().constData());
     return rc;
 }
 
-// ------------- StandardFileWizard(
+// ------------- StandardFileWizard
 
 StandardFileWizard::StandardFileWizard(const BaseFileWizardParameters &parameters,
-                                       Core::ICore *core,
                                        QObject *parent) :
-    BaseFileWizard(parameters,  core, parent)
+    BaseFileWizard(parameters, parent)
 {
 }
 
diff --git a/src/plugins/coreplugin/basefilewizard.h b/src/plugins/coreplugin/basefilewizard.h
index 40e98793cb9f57e310fbd62b75906d90846ceb72..5f0a1ec9b555f44d24f0f7eca64cc54e773d7848 100644
--- a/src/plugins/coreplugin/basefilewizard.h
+++ b/src/plugins/coreplugin/basefilewizard.h
@@ -50,7 +50,6 @@ QT_END_NAMESPACE
 
 namespace Core {
 
-class ICore;
 class IEditor;
 class IFileWizardExtension;
 
@@ -69,7 +68,7 @@ public:
     GeneratedFile();
     explicit GeneratedFile(const QString &path);
     GeneratedFile(const GeneratedFile &);
-    GeneratedFile &operator=(const GeneratedFile&);
+    GeneratedFile &operator=(const GeneratedFile &);
     ~GeneratedFile();
 
     // Full path of the file should be created, or the suggested file name
@@ -107,19 +106,19 @@ public:
     void setKind(IWizard::Kind k);
 
     QIcon icon() const;
-    void setIcon(const QIcon&);
+    void setIcon(const QIcon &icon);
 
     QString description() const;
-    void setDescription(const QString &);
+    void setDescription(const QString &description);
 
     QString name() const;
-    void setName(const QString &);
+    void setName(const QString &name);
 
     QString category() const;
-    void setCategory(const QString &);
+    void setCategory(const QString &category);
 
     QString trCategory() const;
-    void setTrCategory(const QString &);
+    void setTrCategory(const QString &trCategory);
 
 private:
     QSharedDataPointer<BaseFileWizardParameterData> m_d;
@@ -172,7 +171,7 @@ public:
 protected:
     typedef QList<QWizardPage *> WizardPageList;
 
-    explicit BaseFileWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent = 0);
+    explicit BaseFileWizard(const BaseFileWizardParameters &parameters, QObject *parent = 0);
 
     // Overwrite to create the wizard dialog on the parent, adding
     // the extension pages.
@@ -197,8 +196,6 @@ protected:
     OverwriteResult promptOverwrite(const QString &location,
                                     const QStringList &files,
                                     QString *errorMessage) const;
-    Core::ICore *core() const;
-
 private:
     BaseFileWizardPrivate *m_d;
 };
@@ -213,7 +210,7 @@ class CORE_EXPORT StandardFileWizard : public BaseFileWizard
     Q_OBJECT
 
 protected:
-    explicit StandardFileWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent = 0);
+    explicit StandardFileWizard(const BaseFileWizardParameters &parameters, QObject *parent = 0);
 
     // Implemented to create a Core::Utils::FileWizardDialog
     virtual QWizard *createWizardDialog(QWidget *parent,
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index 9a43b4221c3d0e48e02ff5caba8caa420c22211c..547c0f2d40dbf9dedf2f828be9f271689a1d0913 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -60,7 +60,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory,
     QMap<QString, QTreeWidgetItem *> categories;
 
     QList<IOptionsPage*> pages =
-        CoreImpl::instance()->pluginManager()->getObjects<IOptionsPage>();
+        ExtensionSystem::PluginManager::instance()->getObjects<IOptionsPage>();
 
     int index = 0;
     foreach (IOptionsPage *page, pages) {
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index cf10f0fca66428f2d5160a00e0fcb72757380c58..5b8bee111e907f0406bd833e94999e9e5598e50e 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -78,6 +78,11 @@ using namespace Core::Internal;
 
 enum { debugEditorManager=0 };
 
+static inline ExtensionSystem::PluginManager *pluginManager()
+{
+    return ExtensionSystem::PluginManager::instance();
+}
+
 //===================EditorManager=====================
 
 EditorManagerPlaceHolder *EditorManagerPlaceHolder::m_current = 0;
@@ -374,11 +379,12 @@ EditorManager::EditorManager(ICore *core, QWidget *parent) :
 EditorManager::~EditorManager()
 {
     if (m_d->m_core) {
+        ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
         if (m_d->m_coreListener) {
-            m_d->m_core->pluginManager()->removeObject(m_d->m_coreListener);
+            pm->removeObject(m_d->m_coreListener);
             delete m_d->m_coreListener;
         }
-        m_d->m_core->pluginManager()->removeObject(m_d->m_openEditorsFactory);
+        pm->removeObject(m_d->m_openEditorsFactory);
         delete m_d->m_openEditorsFactory;
     }
     delete m_d;
@@ -390,10 +396,11 @@ void EditorManager::init()
     context << m_d->m_core->uniqueIDManager()->uniqueIdentifier("QtCreator.OpenDocumentsView");
 
     m_d->m_coreListener = new EditorClosingCoreListener(this);
-    m_d->m_core->pluginManager()->addObject(m_d->m_coreListener);
+    
+    pluginManager()->addObject(m_d->m_coreListener);
 
     m_d->m_openEditorsFactory = new OpenEditorsViewFactory();
-    m_d->m_core->pluginManager()->addObject(m_d->m_openEditorsFactory);
+    pluginManager()->addObject(m_d->m_openEditorsFactory);
 }
 
 QSize EditorManager::minimumSizeHint() const
@@ -624,7 +631,7 @@ bool EditorManager::closeEditors(const QList<IEditor*> editorsToClose, bool askA
     QList<IEditor*> acceptedEditors;
     //ask all core listeners to check whether the editor can be closed
     const QList<ICoreListener *> listeners =
-        m_d->m_core->pluginManager()->getObjects<ICoreListener>();
+        pluginManager()->getObjects<ICoreListener>();
     foreach (IEditor *editor, editorsToClose) {
         bool editorAccepted = true;
         foreach (ICoreListener *listener, listeners) {
@@ -740,7 +747,7 @@ EditorManager::EditorFactoryList
     EditorManager::editorFactories(const MimeType &mimeType, bool bestMatchOnly) const
 {
     EditorFactoryList rc;
-    const EditorFactoryList allFactories = m_d->m_core->pluginManager()->getObjects<IEditorFactory>();
+    const EditorFactoryList allFactories = pluginManager()->getObjects<IEditorFactory>();
     mimeTypeFactoryRecursion(m_d->m_core->mimeDatabase(), mimeType, allFactories, bestMatchOnly, &rc);
     if (debugEditorManager)
         qDebug() << Q_FUNC_INFO << mimeType.type() << " returns " << rc;
@@ -767,7 +774,7 @@ IEditor *EditorManager::createEditor(const QString &editorKind,
         factories = editorFactories(mimeType, true);
     } else {
         // Find by editor kind
-        const EditorFactoryList allFactories = m_d->m_core->pluginManager()->getObjects<IEditorFactory>();
+        const EditorFactoryList allFactories = pluginManager()->getObjects<IEditorFactory>();
         const EditorFactoryList::const_iterator acend = allFactories.constEnd();
         for (EditorFactoryList::const_iterator ait = allFactories.constBegin(); ait != acend; ++ait) {
             if (editorKind == (*ait)->kind()) {
diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h
index 4f369e23c41059684df29f1b461fe74f539d7628..565b8589345643bd1bb8a6d08d5d7bec10bed47d 100644
--- a/src/plugins/coreplugin/icore.h
+++ b/src/plugins/coreplugin/icore.h
@@ -44,12 +44,6 @@ class QSettings;
 template <class T> class QList;
 QT_END_NAMESPACE
 
-namespace ExtensionSystem {
-
-class PluginManager;
-
-} // namespace ExtensionSystem
-
 namespace Core {
 
 class ActionManager;
@@ -87,7 +81,6 @@ public:
     virtual FileManager *fileManager() const = 0;
     virtual UniqueIDManager *uniqueIDManager() const = 0;
     virtual MessageManager *messageManager() const = 0;
-    virtual ExtensionSystem::PluginManager *pluginManager() const = 0;
     virtual EditorManager *editorManager() const = 0;
     virtual ProgressManager *progressManager() const = 0;
     virtual ScriptManager *scriptManager() const = 0;
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 664dcb896135d3b43a00062c31554c7d58d5c8d6..5742eb1a12573d6453b6d86b92cdde4f28bc855b 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -698,8 +698,8 @@ void MainWindow::openFile()
 
 static QList<IFileFactory*> getNonEditorFileFactories()
 {
-    const ICore *core = CoreImpl::instance();
-    const QList<IFileFactory*> allFileFactories = core->pluginManager()->getObjects<IFileFactory>();
+    const QList<IFileFactory*> allFileFactories =
+        ExtensionSystem::PluginManager::instance()->getObjects<IFileFactory>();
     QList<IFileFactory*> nonEditorFileFactories;
     foreach (IFileFactory *factory, allFileFactories) {
         if (!qobject_cast<IEditorFactory *>(factory))
diff --git a/src/plugins/cppeditor/cppclasswizard.cpp b/src/plugins/cppeditor/cppclasswizard.cpp
index ecdcc110197a22d4a02ba8eff9da4bf7b3d1bbcb..99db1ca123ad65aa4816fcd46ed77d8f97f182a6 100644
--- a/src/plugins/cppeditor/cppclasswizard.cpp
+++ b/src/plugins/cppeditor/cppclasswizard.cpp
@@ -42,9 +42,6 @@
 #include <QtCore/QDir>
 #include <QtCore/QTextStream>
 
-#include <QtGui/QCheckBox>
-#include <QtGui/QComboBox>
-#include <QtGui/QLabel>
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QWizard>
 
@@ -124,8 +121,8 @@ CppClassWizardParameters  CppClassWizardDialog::parameters() const
 // ========= CppClassWizard =========
 
 CppClassWizard::CppClassWizard(const Core::BaseFileWizardParameters &parameters,
-                               Core::ICore *core, QObject *parent) :
-    Core::BaseFileWizard(parameters, core, parent)
+                               QObject *parent)
+  : Core::BaseFileWizard(parameters, parent)
 {
 }
 
diff --git a/src/plugins/cppeditor/cppclasswizard.h b/src/plugins/cppeditor/cppclasswizard.h
index b117dc7ad09ee2717f15cf2c89b8fed18e3dd257..987b6232d4386460c2266e6ccc776239636feb55 100644
--- a/src/plugins/cppeditor/cppclasswizard.h
+++ b/src/plugins/cppeditor/cppclasswizard.h
@@ -40,16 +40,13 @@
 #include <QtGui/QWizardPage>
 #include <QtGui/QWizard>
 
-QT_BEGIN_NAMESPACE
-class QCheckBox;
-class QComboBox;
-QT_END_NAMESPACE
-
 namespace Core {
 namespace Utils {
-    class NewClassWidget;
-}
-}
+
+class NewClassWidget;
+
+} // namespace Utils
+} // namespace Core
 
 namespace CppEditor {
 namespace Internal {
@@ -75,7 +72,8 @@ private:
 };
 
 
-struct CppClassWizardParameters {
+struct CppClassWizardParameters
+{
     QString className;
     QString headerFile;
     QString sourceFile;
@@ -83,9 +81,10 @@ struct CppClassWizardParameters {
     QString path;
 };
 
-class CppClassWizardDialog : public QWizard {
-    Q_DISABLE_COPY(CppClassWizardDialog)
+class CppClassWizardDialog : public QWizard
+{
     Q_OBJECT
+    Q_DISABLE_COPY(CppClassWizardDialog)
 public:
     explicit CppClassWizardDialog(const QString &sourceSuffix,
                                   const QString &headerSuffix,
@@ -104,7 +103,7 @@ class CppClassWizard : public Core::BaseFileWizard
     Q_OBJECT
 public:
     explicit CppClassWizard(const Core::BaseFileWizardParameters &parameters,
-                            Core::ICore *core, QObject *parent = 0);
+                            QObject *parent = 0);
 
 protected:
     virtual QWizard *createWizardDialog(QWidget *parent,
diff --git a/src/plugins/cppeditor/cppeditoractionhandler.cpp b/src/plugins/cppeditor/cppeditoractionhandler.cpp
index f8f2510523b08a11da301d8d78f9744bbf5d3a42..0037f11756225208ec42b6fd4d41ab9997f93e52 100644
--- a/src/plugins/cppeditor/cppeditoractionhandler.cpp
+++ b/src/plugins/cppeditor/cppeditoractionhandler.cpp
@@ -38,10 +38,9 @@
 
 using namespace CppEditor::Internal;
 
-CPPEditorActionHandler::CPPEditorActionHandler(Core::ICore *core,
-                                               const QString &context,
+CPPEditorActionHandler::CPPEditorActionHandler(const QString &context,
                                                uint optionalActions)
-    : TextEditor::TextEditorActionHandler(core, context, optionalActions)
+    : TextEditor::TextEditorActionHandler(context, optionalActions)
 { }
 
 CPPEditorActionHandler::~CPPEditorActionHandler()
diff --git a/src/plugins/cppeditor/cppeditoractionhandler.h b/src/plugins/cppeditor/cppeditoractionhandler.h
index 12428c3343e7147c600e19ffbfa910f49991a469..d98d7f765882be50a3e1d46bcf6ed04ac1238573 100644
--- a/src/plugins/cppeditor/cppeditoractionhandler.h
+++ b/src/plugins/cppeditor/cppeditoractionhandler.h
@@ -44,8 +44,7 @@ class CPPEditorActionHandler : public TextEditor::TextEditorActionHandler
     Q_OBJECT
 
 public:
-    CPPEditorActionHandler(Core::ICore *core,
-                           const QString &context,
+    CPPEditorActionHandler(const QString &context,
                            uint optionalActions = None);
     virtual ~CPPEditorActionHandler();
 
diff --git a/src/plugins/cppeditor/cppfilewizard.cpp b/src/plugins/cppeditor/cppfilewizard.cpp
index d65fed176691080ab0b2c8f577459da6057e578c..795d9248c126465dc4ae3e447dbff5a957434218 100644
--- a/src/plugins/cppeditor/cppfilewizard.cpp
+++ b/src/plugins/cppeditor/cppfilewizard.cpp
@@ -46,9 +46,8 @@ enum { debugWizard = 0 };
 
 CppFileWizard::CppFileWizard(const BaseFileWizardParameters &parameters,
                              FileType type,
-                             Core::ICore *core,
                              QObject *parent) :
-    Core::StandardFileWizard(parameters, core, parent),
+    Core::StandardFileWizard(parameters, parent),
     m_type(type)
 {
 }
diff --git a/src/plugins/cppeditor/cppfilewizard.h b/src/plugins/cppeditor/cppfilewizard.h
index 51c91d9465ce1c13dfa8d8956ac5de5eb70cccb3..e6328f2d32d0ff039fead7cef927ec9384b61292 100644
--- a/src/plugins/cppeditor/cppfilewizard.h
+++ b/src/plugins/cppeditor/cppfilewizard.h
@@ -48,9 +48,9 @@ class CppFileWizard : public Core::StandardFileWizard
 public:
     typedef Core::BaseFileWizardParameters BaseFileWizardParameters;
 
-    explicit CppFileWizard(const BaseFileWizardParameters &parameters,
-                           FileType type,
-                           Core::ICore *core, QObject *parent = 0);
+    CppFileWizard(const BaseFileWizardParameters &parameters,
+                  FileType type,
+                  QObject *parent = 0);
 
 protected:
     static QString toAlphaNum(const QString &s);
diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp
index f2309edb9acf1e0934be7ab59c0b3ad3ceaceb88..3d09e02fc026921ad1c71acc7fcbdbcdee3a7f93 100644
--- a/src/plugins/cppeditor/cppplugin.cpp
+++ b/src/plugins/cppeditor/cppplugin.cpp
@@ -40,6 +40,7 @@
 #include "cppfilewizard.h"
 #include "cpphoverhandler.h"
 
+#include <coreplugin/icore.h>
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/mimedatabase.h>
 #include <coreplugin/uniqueidmanager.h>
@@ -47,7 +48,6 @@
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/command.h>
 #include <coreplugin/editormanager/editormanager.h>
-#include <extensionsystem/pluginmanager.h>
 #include <texteditor/completionsupport.h>
 #include <texteditor/fontsettings.h>
 #include <texteditor/storagesettings.h>
@@ -211,8 +211,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess
     am->actionContainer(CppEditor::Constants::M_CONTEXT)->addAction(cmd);
     am->actionContainer(CppTools::Constants::M_TOOLS_CPP)->addAction(cmd);
 
-    m_actionHandler = new CPPEditorActionHandler(core,
-        CppEditor::Constants::C_CPPEDITOR,
+    m_actionHandler = new CPPEditorActionHandler(CppEditor::Constants::C_CPPEDITOR,
         TextEditor::TextEditorActionHandler::Format
         | TextEditor::TextEditorActionHandler::UnCommentSelection
         | TextEditor::TextEditorActionHandler::UnCollapseAll);
diff --git a/src/plugins/designer/cpp/formclasswizard.cpp b/src/plugins/designer/cpp/formclasswizard.cpp
index b4e618490d40a4a2d869635894f1c3b67d5b55dc..77d002f2d723008bab2825ada3bfab45f1db1348 100644
--- a/src/plugins/designer/cpp/formclasswizard.cpp
+++ b/src/plugins/designer/cpp/formclasswizard.cpp
@@ -48,8 +48,8 @@ enum { debugFormClassWizard = 0 };
 using namespace Designer;
 using namespace Designer::Internal;
 
-FormClassWizard::FormClassWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent) :
-    Core::BaseFileWizard(parameters, core, parent)
+FormClassWizard::FormClassWizard(const BaseFileWizardParameters &parameters,  QObject *parent)
+  : Core::BaseFileWizard(parameters, parent)
 {
 }
 
diff --git a/src/plugins/designer/cpp/formclasswizard.h b/src/plugins/designer/cpp/formclasswizard.h
index 39b99c92037d0e15ea3de360d377c5afde5b7776..f7b693440f327c354f20fbc1851fc1011e257c0f 100644
--- a/src/plugins/designer/cpp/formclasswizard.h
+++ b/src/plugins/designer/cpp/formclasswizard.h
@@ -38,10 +38,6 @@
 
 #include <coreplugin/basefilewizard.h>
 
-QT_BEGIN_NAMESPACE
-class QWizard;
-QT_END_NAMESPACE
-
 namespace Designer {
 namespace Internal {
 
@@ -55,7 +51,7 @@ class FormClassWizard : public Core::BaseFileWizard
 public:
     typedef Core::BaseFileWizardParameters BaseFileWizardParameters;
 
-    FormClassWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent);
+    FormClassWizard(const BaseFileWizardParameters &parameters, QObject *parent);
 
     QString headerSuffix() const;
     QString sourceSuffix() const;
diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp
index 6215fedff04a16b95a2ac7533bb0c0c1cc49d910..efd9a3b64effce4cc695806680a023d22a70fabf 100644
--- a/src/plugins/designer/formeditorplugin.cpp
+++ b/src/plugins/designer/formeditorplugin.cpp
@@ -127,21 +127,20 @@ void FormEditorPlugin::extensionsInitialized()
 bool FormEditorPlugin::initializeTemplates(QString *error)
 {
     Q_UNUSED(error);
-    Core::ICore *core = Core::ICore::instance();
     FormWizard::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
     wizardParameters.setCategory(QLatin1String("Qt"));
     wizardParameters.setTrCategory(tr("Qt"));
     const QString formFileType = QLatin1String(Constants::FORM_FILE_TYPE);
     wizardParameters.setName(tr("Qt Designer Form"));
     wizardParameters.setDescription(tr("This creates a new Qt Designer form file."));
-    m_formWizard = new FormWizard(wizardParameters, core, this);
+    m_formWizard = new FormWizard(wizardParameters, this);
     addObject(m_formWizard);
 
 #ifdef CPP_ENABLED
     wizardParameters.setKind(Core::IWizard::ClassWizard);
     wizardParameters.setName(tr("Qt Designer Form Class"));
     wizardParameters.setDescription(tr("This creates a new Qt Designer form class."));
-    m_formClassWizard = new FormClassWizard(wizardParameters, core, this);
+    m_formClassWizard = new FormClassWizard(wizardParameters, this);
     addObject(m_formClassWizard);
 #endif
     return true;
diff --git a/src/plugins/designer/formwizard.cpp b/src/plugins/designer/formwizard.cpp
index 4bb492ce354e49f8c7c50c97ae20cc4d416fb188..d69c2abbbbc7cb62784cfae46ee42bc61b867ecd 100644
--- a/src/plugins/designer/formwizard.cpp
+++ b/src/plugins/designer/formwizard.cpp
@@ -36,8 +36,6 @@
 #include "formwindoweditor.h"
 #include "designerconstants.h"
 
-#include <coreplugin/icore.h>
-
 #include <QtCore/QFile>
 #include <QtCore/QDebug>
 
@@ -46,8 +44,8 @@ enum { debugFormWizard = 0 };
 using namespace Designer;
 using namespace Designer::Internal;
 
-FormWizard::FormWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent) :
-    Core::BaseFileWizard(parameters, core, parent)
+FormWizard::FormWizard(const BaseFileWizardParameters &parameters, QObject *parent)
+  : Core::BaseFileWizard(parameters, parent)
 {
 }
 
@@ -55,7 +53,7 @@ QWizard *FormWizard::createWizardDialog(QWidget *parent,
                                         const QString &defaultPath,
                                         const WizardPageList &extensionPages) const
 {
-    FormFileWizardDialog *wizardDialog = new FormFileWizardDialog(core(), extensionPages, parent);
+    FormFileWizardDialog *wizardDialog = new FormFileWizardDialog(extensionPages, parent);
     wizardDialog->setPath(defaultPath);
     return wizardDialog;
 }
diff --git a/src/plugins/designer/formwizard.h b/src/plugins/designer/formwizard.h
index b49fea1eb7a838ef12653a428e637b86ef609cb4..588189dbb64ef7fd0da6fb8593acdd633cd0f430 100644
--- a/src/plugins/designer/formwizard.h
+++ b/src/plugins/designer/formwizard.h
@@ -36,15 +36,9 @@
 
 #include <coreplugin/basefilewizard.h>
 
-QT_BEGIN_NAMESPACE
-class QWizard;
-QT_END_NAMESPACE
-
 namespace Designer {
 namespace Internal {
 
-class FormFileWizardDialog;
-
 class FormWizard : public Core::BaseFileWizard
 {
     Q_DISABLE_COPY(FormWizard)
@@ -53,7 +47,7 @@ class FormWizard : public Core::BaseFileWizard
 public:
     typedef Core::BaseFileWizardParameters BaseFileWizardParameters;
 
-    explicit FormWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent);
+    FormWizard(const BaseFileWizardParameters &parameters, QObject *parent);
 
 protected:
     virtual QWizard *createWizardDialog(QWidget *parent,
diff --git a/src/plugins/designer/formwizarddialog.cpp b/src/plugins/designer/formwizarddialog.cpp
index 67ed81601988220364a2b0c5f220c27389e01de7..d7905a56545df2b4befdc75f7941bcae857f71fd 100644
--- a/src/plugins/designer/formwizarddialog.cpp
+++ b/src/plugins/designer/formwizarddialog.cpp
@@ -50,12 +50,10 @@ namespace Designer {
 namespace Internal {
 
 // ----------------- FormWizardDialog
-FormWizardDialog::FormWizardDialog(Core::ICore *core,
-                                   const WizardPageList &extensionPages,
-                                   QWidget *parent) :
-    QWizard(parent),
-    m_formPage(new FormTemplateWizardPagePage),
-    m_core(core)
+FormWizardDialog::FormWizardDialog(const WizardPageList &extensionPages,
+                                   QWidget *parent)
+  : QWizard(parent),
+    m_formPage(new FormTemplateWizardPagePage)
 {
     init(extensionPages);
 }
@@ -82,10 +80,9 @@ QString FormWizardDialog::templateContents() const
 }
 
 // ----------------- FormFileWizardDialog
-FormFileWizardDialog::FormFileWizardDialog(Core::ICore *core,
-                                           const WizardPageList &extensionPages,
-                                           QWidget *parent) :
-    FormWizardDialog(core, extensionPages, parent),
+FormFileWizardDialog::FormFileWizardDialog(const WizardPageList &extensionPages,
+                                           QWidget *parent)
+  : FormWizardDialog(extensionPages, parent),
     m_filePage(new Core::Utils::FileWizardPage)
 {
     setPage(FilePageId, m_filePage);
diff --git a/src/plugins/designer/formwizarddialog.h b/src/plugins/designer/formwizarddialog.h
index 52aaed4cd0226c8f420ef33e397ca573011799df..0ecd7274b1d1ce2fc7a3f49ff322e9a19e918f6b 100644
--- a/src/plugins/designer/formwizarddialog.h
+++ b/src/plugins/designer/formwizarddialog.h
@@ -37,10 +37,9 @@
 #include <QtGui/QWizard>
 
 namespace Core {
-    class ICore;
-    namespace Utils {
-        class FileWizardPage;
-    }
+namespace Utils {
+    class FileWizardPage;
+}
 }
 
 namespace Designer {
@@ -58,8 +57,7 @@ class FormWizardDialog : public QWizard
 
 public:
     typedef QList<QWizardPage *> WizardPageList;
-    explicit FormWizardDialog(Core::ICore *core,
-                              const WizardPageList &extensionPages,
+    explicit FormWizardDialog(const WizardPageList &extensionPages,
                               QWidget *parent = 0);
 
     QString templateContents() const;
@@ -68,7 +66,6 @@ private:
     void init(const WizardPageList &extensionPages);
 
     FormTemplateWizardPagePage *m_formPage;
-    Core::ICore *m_core;
     mutable QString m_templateContents;
 };
 
@@ -82,8 +79,7 @@ class FormFileWizardDialog : public FormWizardDialog
     Q_OBJECT
 
 public:
-    explicit FormFileWizardDialog(Core::ICore *core,
-                                  const WizardPageList &extensionPages,
+    explicit FormFileWizardDialog(const WizardPageList &extensionPages,
                                   QWidget *parent = 0);
 
     QString path() const;
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 9856de8e4ee6daac4be2102b3dfa759de21b3f4d..fe2394c019ddcaec6753e93d7c0f9724fe4b5d0a 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -97,10 +97,10 @@ static QString formatCommand(const QString &binary, const QStringList &args)
 }
 
 // ---------------- GitClient
-GitClient::GitClient(GitPlugin* plugin, Core::ICore *core) :
-    m_msgWait(tr("Waiting for data...")),
+GitClient::GitClient(GitPlugin* plugin)
+  : m_msgWait(tr("Waiting for data...")),
     m_plugin(plugin),
-    m_core(core)
+    m_core(Core::ICore::instance())
 {
     if (QSettings *s = m_core->settings())
         m_settings.fromSettings(s);
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index aa4ad97015ae3c2360fb5c460dd047a0bb9ae26c..c920ffc1b32f2e6626789553c520ac004faa8974 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -68,7 +68,7 @@ class GitClient : public QObject
     Q_OBJECT
 
 public:
-    explicit GitClient(GitPlugin *plugin, Core::ICore *core);
+    explicit GitClient(GitPlugin *plugin);
     ~GitClient();
 
     bool managesDirectory(const QString &) const { return false; }
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index a49ba12b42e1645353db78dbb6f1ff1ed236646d..f00f6d711eff9781c50c2ea50a588eb1bb60e234 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -233,7 +233,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *error_message)
     Q_UNUSED(error_message);
 
     m_core = Core::ICore::instance();
-    m_gitClient = new GitClient(this, m_core);
+    m_gitClient = new GitClient(this);
     // Create the globalcontext list to register actions accordingly
     QList<int> globalcontext;
     globalcontext << m_core->uniqueIDManager()->
@@ -250,7 +250,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *error_message)
     static const char *describeSlot = SLOT(show(QString,QString));
     const int editorCount = sizeof(editorParameters)/sizeof(VCSBase::VCSBaseEditorParameters);
     for (int i = 0; i < editorCount; i++) {
-        m_editorFactories.push_back(new GitEditorFactory(editorParameters + i, m_core, m_gitClient, describeSlot));
+        m_editorFactories.push_back(new GitEditorFactory(editorParameters + i, m_gitClient, describeSlot));
         addObject(m_editorFactories.back());
     }
 
@@ -622,7 +622,7 @@ void GitPlugin::startCommit()
 
 Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd)
 {
-    Core::IEditor *editor =  m_core->editorManager()->openEditor(fileName, QLatin1String(Constants::GITSUBMITEDITOR_KIND));
+    Core::IEditor *editor = m_core->editorManager()->openEditor(fileName, QLatin1String(Constants::GITSUBMITEDITOR_KIND));
     if (Git::Constants::debug)
         qDebug() << Q_FUNC_INFO << fileName << editor;
     m_core->editorManager()->ensureEditorManagerVisible();
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index 75a868232e2e1ac928ea1d02742c4ef34587a869..de096457e677b58761a9733180113fd40261ab5d 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -211,7 +211,7 @@ bool PerforcePlugin::initialize(const QStringList &arguments, QString *errorMess
     static const char *describeSlot = SLOT(describe(QString,QString));
     const int editorCount = sizeof(editorParameters)/sizeof(VCSBase::VCSBaseEditorParameters);
     for (int i = 0; i < editorCount; i++) {
-        m_editorFactories.push_back(new PerforceEditorFactory(editorParameters + i, core, this, describeSlot));
+        m_editorFactories.push_back(new PerforceEditorFactory(editorParameters + i, this, describeSlot));
         addObject(m_editorFactories.back());
     }
 
@@ -596,7 +596,8 @@ void PerforcePlugin::annotate(const QString &fileName)
                                              CommandToWindow|StdErrToWindow|ErrorToWindow, codec);
     if (!result.error) {
         const QFileInfo fi(fileName);
-        showOutputInEditor(tr("p4 annotate %1").arg(fi.fileName()), result.stdOut, VCSBase::AnnotateOutput, codec);
+        showOutputInEditor(tr("p4 annotate %1").arg(fi.fileName()),
+            result.stdOut, VCSBase::AnnotateOutput, codec);
     }
 }
 
@@ -623,7 +624,8 @@ void PerforcePlugin::filelog(const QString &fileName)
                                              CommandToWindow|StdErrToWindow|ErrorToWindow, codec);
     if (!result.error) {
         const QFileInfo fi(fileName);
-        showOutputInEditor(tr("p4 filelog %1").arg(fi.fileName()), result.stdOut, VCSBase::LogOutput, codec);
+        showOutputInEditor(tr("p4 filelog %1").arg(fi.fileName()),
+            result.stdOut, VCSBase::LogOutput, codec);
     }
 }
 
diff --git a/src/plugins/projectexplorer/allprojectsfilter.cpp b/src/plugins/projectexplorer/allprojectsfilter.cpp
index 07e34399b0bef30b2c9c9b3de3b40981887fdd78..cb1457f83663a38205419a25da1d745d22fd2165 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.cpp
+++ b/src/plugins/projectexplorer/allprojectsfilter.cpp
@@ -43,8 +43,7 @@ using namespace QuickOpen;
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 
-AllProjectsFilter::AllProjectsFilter(ProjectExplorerPlugin *pe, ICore *core)
-    : BaseFileFilter(core)
+AllProjectsFilter::AllProjectsFilter(ProjectExplorerPlugin *pe)
 {
     m_projectExplorer = pe;
     connect(m_projectExplorer, SIGNAL(fileListChanged()),
diff --git a/src/plugins/projectexplorer/allprojectsfilter.h b/src/plugins/projectexplorer/allprojectsfilter.h
index 8de2de425e60bad3dbb102b141d845c6bcb97043..f94d51ea1bb7cf860af7d14f2a19e03a1e7edcbb 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.h
+++ b/src/plugins/projectexplorer/allprojectsfilter.h
@@ -36,13 +36,10 @@
 
 #include <quickopen/basefilefilter.h>
 
-#include <QtCore/QString>
-#include <QtCore/QList>
-#include <QtCore/QByteArray>
 #include <QtCore/QFutureInterface>
+#include <QtCore/QString>
 #include <QtGui/QWidget>
 
-
 namespace ProjectExplorer {
 
 class ProjectExplorerPlugin;
@@ -54,7 +51,7 @@ class AllProjectsFilter : public QuickOpen::BaseFileFilter
     Q_OBJECT
 
 public:
-    AllProjectsFilter(ProjectExplorerPlugin *pe, Core::ICore *core);
+    explicit AllProjectsFilter(ProjectExplorerPlugin *pe);
     QString trName() const { return tr("Files in any project"); }
     QString name() const { return "Files in any project"; }
     QuickOpen::IQuickOpenFilter::Priority priority() const { return QuickOpen::IQuickOpenFilter::Low; }
diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp
index 26998982614bbfaf40d29d6844eeab25e8a816e0..84af045f050779e4218f953e551d8bc0e1f33c32 100644
--- a/src/plugins/projectexplorer/allprojectsfind.cpp
+++ b/src/plugins/projectexplorer/allprojectsfind.cpp
@@ -47,8 +47,8 @@ using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 using namespace TextEditor;
 
-AllProjectsFind::AllProjectsFind(ProjectExplorerPlugin *plugin, Core::ICore *core, SearchResultWindow *resultWindow)
-    : BaseFileFind(core, resultWindow),
+AllProjectsFind::AllProjectsFind(ProjectExplorerPlugin *plugin, SearchResultWindow *resultWindow)
+    : BaseFileFind(resultWindow),
     m_plugin(plugin),
     m_configWidget(0)
 {
diff --git a/src/plugins/projectexplorer/allprojectsfind.h b/src/plugins/projectexplorer/allprojectsfind.h
index 48d1457b546a6a931f2ac6c51f17660255980a35..1b93842c691363e34fcdba5108787ca90d84ef88 100644
--- a/src/plugins/projectexplorer/allprojectsfind.h
+++ b/src/plugins/projectexplorer/allprojectsfind.h
@@ -34,15 +34,11 @@
 #ifndef ALLPROJECTSFIND_H
 #define ALLPROJECTSFIND_H
 
-#include <coreplugin/icore.h>
 #include <find/ifindfilter.h>
 #include <find/searchresultwindow.h>
 #include <texteditor/basefilefind.h>
 
 #include <QtCore/QPointer>
-#include <QtGui/QLabel>
-#include <QtGui/QComboBox>
-#include <QtGui/QStringListModel>
 
 
 namespace ProjectExplorer {
@@ -56,7 +52,7 @@ class AllProjectsFind : public TextEditor::BaseFileFind
     Q_OBJECT
 
 public:
-    AllProjectsFind(ProjectExplorerPlugin *plugin, Core::ICore *core, Find::SearchResultWindow *resultWindow);
+    AllProjectsFind(ProjectExplorerPlugin *plugin, Find::SearchResultWindow *resultWindow);
 
     QString name() const;
 
diff --git a/src/plugins/projectexplorer/currentprojectfilter.cpp b/src/plugins/projectexplorer/currentprojectfilter.cpp
index 4b9e585cc130196e3aa9d4b56c3884364fd693a9..496aeb326c02e1c9ef2e97466f2f70ad82098017 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.cpp
+++ b/src/plugins/projectexplorer/currentprojectfilter.cpp
@@ -36,20 +36,18 @@
 #include "project.h"
 #include "session.h"
 
-#include <QtCore/QVariant>
-#include <QtCore/QTimer>
+#include <QtCore/QtDebug>
 #include <QtCore/QThread>
-#include <QtDebug>
+#include <QtCore/QTimer>
+#include <QtCore/QVariant>
 
 using namespace Core;
 using namespace QuickOpen;
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 
-CurrentProjectFilter::CurrentProjectFilter(ProjectExplorerPlugin *pe,
-                                     ICore *core)
-    : BaseFileFilter(core),
-      m_project(0)
+CurrentProjectFilter::CurrentProjectFilter(ProjectExplorerPlugin *pe)
+  : BaseFileFilter(), m_project(0)
 {
     m_projectExplorer = pe;
 
@@ -73,12 +71,12 @@ void CurrentProjectFilter::currentProjectChanged(ProjectExplorer::Project *proje
 {
     if (project == m_project)
         return;
-    if (m_project) {
+    if (m_project)
         disconnect(m_project, SIGNAL(fileListChanged()), this, SLOT(refreshInternally()));
-    }
-    if (project) {
+
+    if (project)
         connect(project, SIGNAL(fileListChanged()), this, SLOT(refreshInternally()));
-    }
+
     m_project = project;
     refreshInternally();
 }
diff --git a/src/plugins/projectexplorer/currentprojectfilter.h b/src/plugins/projectexplorer/currentprojectfilter.h
index 92ae4b6863538839b2f2687a1e7555d700f4c27e..25b2a12f57696990af4045223337de1ea169521c 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.h
+++ b/src/plugins/projectexplorer/currentprojectfilter.h
@@ -54,7 +54,7 @@ class CurrentProjectFilter : public QuickOpen::BaseFileFilter
     Q_OBJECT
 
 public:
-    CurrentProjectFilter(ProjectExplorerPlugin *pe, Core::ICore *core);
+    CurrentProjectFilter(ProjectExplorerPlugin *pe);
     QString trName() const { return tr("Files in current project"); }
     QString name() const { return "Files in current project"; }
     QuickOpen::IQuickOpenFilter::Priority priority() const { return QuickOpen::IQuickOpenFilter::Low; }
diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp
index cf1d81c3bc7e591050d1e8bd9bf2b73530f244b7..e453d0c6a49d5a03afcfe76fd383f8471757a8a8 100644
--- a/src/plugins/projectexplorer/currentprojectfind.cpp
+++ b/src/plugins/projectexplorer/currentprojectfind.cpp
@@ -47,8 +47,8 @@ using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 using namespace TextEditor;
 
-CurrentProjectFind::CurrentProjectFind(ProjectExplorerPlugin *plugin, Core::ICore *core, SearchResultWindow *resultWindow)
-    : BaseFileFind(core, resultWindow),
+CurrentProjectFind::CurrentProjectFind(ProjectExplorerPlugin *plugin, SearchResultWindow *resultWindow)
+  : BaseFileFind(resultWindow),
     m_plugin(plugin),
     m_configWidget(0)
 {
diff --git a/src/plugins/projectexplorer/currentprojectfind.h b/src/plugins/projectexplorer/currentprojectfind.h
index 5c08be0f2fc70d0a91982a27133446e5b41f231c..8690911277a2e3ad1073e1376b5fe501a6376235 100644
--- a/src/plugins/projectexplorer/currentprojectfind.h
+++ b/src/plugins/projectexplorer/currentprojectfind.h
@@ -34,7 +34,6 @@
 #ifndef CURRENTPROJECTFIND_H
 #define CURRENTPROJECTFIND_H
 
-#include <coreplugin/icore.h>
 #include <find/ifindfilter.h>
 #include <find/searchresultwindow.h>
 #include <texteditor/basefilefind.h>
@@ -51,7 +50,7 @@ namespace Internal {
 class CurrentProjectFind : public TextEditor::BaseFileFind
 {
 public:
-    CurrentProjectFind(ProjectExplorerPlugin *plugin, Core::ICore *core, Find::SearchResultWindow *resultWindow);
+    CurrentProjectFind(ProjectExplorerPlugin *plugin, Find::SearchResultWindow *resultWindow);
 
     QString name() const;
 
diff --git a/src/plugins/projectexplorer/pluginfilefactory.cpp b/src/plugins/projectexplorer/pluginfilefactory.cpp
index de7153c4015feb342d75f49f12f06a2c63e366e3..55b38f681bf3da05dee732c0d5f8d22235f50ce2 100644
--- a/src/plugins/projectexplorer/pluginfilefactory.cpp
+++ b/src/plugins/projectexplorer/pluginfilefactory.cpp
@@ -46,10 +46,9 @@
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 
-ProjectFileFactory::ProjectFileFactory(const Core::ICore* core, IProjectManager *manager) :
-    m_mimeTypes(manager->mimeType()),
+ProjectFileFactory::ProjectFileFactory(IProjectManager *manager)
+  : m_mimeTypes(manager->mimeType()),
     m_kind(Constants::FILE_FACTORY_KIND),
-    m_core(core),
     m_manager(manager)
 {
 }
@@ -70,7 +69,7 @@ Core::IFile *ProjectFileFactory::open(const QString &fileName)
 
     ProjectExplorerPlugin *pe = ProjectExplorerPlugin::instance();
     if (!pe->openProject(fileName)) {
-        m_core->messageManager()->printToOutputPane(tr("Could not open the following project: '%1'").arg(fileName));
+        Core::ICore::instance()->messageManager()->printToOutputPane(tr("Could not open the following project: '%1'").arg(fileName));
     } else if (pe->session()) {
         SessionManager *session = pe->session();
         if (session->projects().count() == 1)
@@ -81,21 +80,21 @@ Core::IFile *ProjectFileFactory::open(const QString &fileName)
     return fIFace;
 }
 
-QList<ProjectFileFactory*> ProjectFileFactory::createFactories(const Core::ICore* core,
-                                                               QString *filterString)
+QList<ProjectFileFactory *> ProjectFileFactory::createFactories(QString *filterString)
 {
     // Register factories for all project managers
     QList<Internal::ProjectFileFactory*> rc;
-    QList<IProjectManager*> projectManagers = core->pluginManager()->getObjects<IProjectManager>();
+    QList<IProjectManager*> projectManagers =
+        ExtensionSystem::PluginManager::instance()->getObjects<IProjectManager>();
 
     const QString filterSeparator = QLatin1String(";;");
     filterString->clear();
     foreach (IProjectManager *manager, projectManagers) {
-        rc.push_back(new ProjectFileFactory(core, manager));
+        rc.push_back(new ProjectFileFactory(manager));
         if (!filterString->isEmpty())
             *filterString += filterSeparator;
         const QString mimeType = manager->mimeType();
-        const QString pFilterString = core->mimeDatabase()->findByType(mimeType).filterString();
+        const QString pFilterString = Core::ICore::instance()->mimeDatabase()->findByType(mimeType).filterString();
         *filterString += pFilterString;
     }
     return rc;
diff --git a/src/plugins/projectexplorer/pluginfilefactory.h b/src/plugins/projectexplorer/pluginfilefactory.h
index 035eb50e665ea72f4143a99f9004b54ff9e58c55..e23be0e9f9f33350be692bd1dfaa78fd423f3dc4 100644
--- a/src/plugins/projectexplorer/pluginfilefactory.h
+++ b/src/plugins/projectexplorer/pluginfilefactory.h
@@ -35,16 +35,14 @@
 #define PLUGINFILEFACTORY_H
 
 #include <coreplugin/ifilefactory.h>
+
 #include <QtCore/QObject>
 #include <QtCore/QStringList>
 
-namespace Core {
-    class ICore;
-}
-
 namespace ProjectExplorer {
-    class IProjectManager;
-    class ProjectExplorerPlugin;
+
+class IProjectManager;
+class ProjectExplorerPlugin;
 
 namespace Internal {
 
@@ -53,20 +51,20 @@ namespace Internal {
 class ProjectFileFactory : public Core::IFileFactory
 {
     Q_OBJECT
-    explicit ProjectFileFactory(const Core::ICore* core, ProjectExplorer::IProjectManager *manager);
-public:
 
+    explicit ProjectFileFactory(ProjectExplorer::IProjectManager *manager);
+
+public:
     virtual QStringList mimeTypes() const;
     bool canOpen(const QString &fileName);
     QString kind() const;
     Core::IFile *open(const QString &fileName);
 
-    static QList<ProjectFileFactory*> createFactories(const Core::ICore* core, QString *filterString);
+    static QList<ProjectFileFactory*> createFactories(QString *filterString);
 
 private:
     const QStringList m_mimeTypes;
     const QString m_kind;
-    const Core::ICore* m_core;
     ProjectExplorer::IProjectManager *m_manager;
 };
 
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index f4f5efc52be9c4c3e912a474d5dbf183412b843e..027e9876d89834a20dd4cbee2a354b7aceca299d 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -152,15 +152,15 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     Q_UNUSED(arguments);
     Q_UNUSED(error);
 
-    m_core = Core::ICore::instance();
-    Core::ActionManager *am = m_core->actionManager();
+    Core::ICore *core = Core::ICore::instance();
+    Core::ActionManager *am = core->actionManager();
 
     addObject(this);
 
-    connect(m_core->fileManager(), SIGNAL(currentFileChanged(const QString&)),
+    connect(core->fileManager(), SIGNAL(currentFileChanged(const QString&)),
             this, SLOT(setCurrentFile(const QString&)));
 
-    m_session = new SessionManager(m_core, this);
+    m_session = new SessionManager(core, this);
 
     connect(m_session, SIGNAL(projectAdded(ProjectExplorer::Project *)),
             this, SIGNAL(fileListChanged()));
@@ -171,13 +171,13 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     connect(m_session, SIGNAL(startupProjectChanged(ProjectExplorer::Project *)),
             this, SLOT(startupProjectChanged()));
 
-    m_proWindow = new ProjectWindow(m_core);
+    m_proWindow = new ProjectWindow;
 
     QList<int> globalcontext;
     globalcontext.append(Core::Constants::C_GLOBAL_ID);
 
     QList<int> pecontext;
-    pecontext << m_core->uniqueIDManager()->uniqueIdentifier(Constants::C_PROJECTEXPLORER);
+    pecontext << core->uniqueIDManager()->uniqueIdentifier(Constants::C_PROJECTEXPLORER);
 
     Core::BaseMode *mode = new Core::BaseMode;
     mode->setName(tr("Projects"));
@@ -199,15 +199,15 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
 
     addAutoReleasedObject(new CoreListenerCheckingForRunningBuild(m_buildManager));
 
-    m_outputPane = new OutputPane(m_core);
+    m_outputPane = new OutputPane(core);
     addAutoReleasedObject(m_outputPane);
     connect(m_session, SIGNAL(projectRemoved(ProjectExplorer::Project *)),
             m_outputPane, SLOT(projectRemoved()));
 
-    AllProjectsFilter *allProjectsFilter = new AllProjectsFilter(this, m_core);
+    AllProjectsFilter *allProjectsFilter = new AllProjectsFilter(this);
     addAutoReleasedObject(allProjectsFilter);
 
-    CurrentProjectFilter *currentProjectFilter = new CurrentProjectFilter(this, m_core);
+    CurrentProjectFilter *currentProjectFilter = new CurrentProjectFilter(this);
     addAutoReleasedObject(currentProjectFilter);
 
     addAutoReleasedObject(new BuildSettingsPanelFactory);
@@ -218,18 +218,19 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     ProcessStepFactory *processStepFactory = new ProcessStepFactory;
     addAutoReleasedObject(processStepFactory);
 
-    AllProjectsFind *allProjectsFind = new AllProjectsFind(this, m_core,
-        m_core->pluginManager()->getObject<Find::SearchResultWindow>());
+    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
+    AllProjectsFind *allProjectsFind = new AllProjectsFind(this,
+        pm->getObject<Find::SearchResultWindow>());
     addAutoReleasedObject(allProjectsFind);
 
-    CurrentProjectFind *currentProjectFind = new CurrentProjectFind(this, m_core,
-        m_core->pluginManager()->getObject<Find::SearchResultWindow>());
+    CurrentProjectFind *currentProjectFind = new CurrentProjectFind(this,
+        pm->getObject<Find::SearchResultWindow>());
     addAutoReleasedObject(currentProjectFind);
 
     addAutoReleasedObject(new ApplicationRunConfigurationRunner);
     addAutoReleasedObject(new CustomExecutableRunConfigurationFactory);
 
-    addAutoReleasedObject(new ProjectFileWizardExtension(m_core));
+    addAutoReleasedObject(new ProjectFileWizardExtension);
 
     // context menus
     Core::ActionContainer *msessionContextMenu =
@@ -255,7 +256,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
         am->actionContainer(Core::Constants::MENU_BAR);
 
     // mode manager (for fancy actions)
-    Core::ModeManager *modeManager = m_core->modeManager();
+    Core::ModeManager *modeManager = core->modeManager();
 
     // build menu
     Core::ActionContainer *mbuild =
@@ -585,13 +586,13 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     m_renameFileAction->setEnabled(false);
     m_renameFileAction->setVisible(false);
 
-    connect(m_core, SIGNAL(saveSettingsRequested()),
+    connect(core, SIGNAL(saveSettingsRequested()),
         this, SLOT(savePersistentSettings()));
 
-    addAutoReleasedObject(new ProjectTreeWidgetFactory(m_core));
-    addAutoReleasedObject(new FolderNavigationWidgetFactory(m_core));
+    addAutoReleasedObject(new ProjectTreeWidgetFactory(core));
+    addAutoReleasedObject(new FolderNavigationWidgetFactory(core));
 
-    if (QSettings *s = m_core->settings())
+    if (QSettings *s = core->settings())
         m_recentProjects = s->value("ProjectExplorer/RecentProjects/Files", QStringList()).toStringList();
     for (QStringList::iterator it = m_recentProjects.begin(); it != m_recentProjects.end(); ) {
         if (QFileInfo(*it).isFile()) {
@@ -627,7 +628,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
 
     updateActions();
 
-    connect(m_core, SIGNAL(coreOpened()), this, SLOT(restoreSession()));
+    connect(Core::ICore::instance(), SIGNAL(coreOpened()), this, SLOT(restoreSession()));
 
     return true;
 }
@@ -647,7 +648,7 @@ template <class Factory, class Iterator>
 ProjectFileFactory * ProjectExplorerPlugin::findProjectFileFactory(const QString &filename) const
 {
     // Find factory
-    if (const Core::MimeType mt = m_core->mimeDatabase()->findByFile(QFileInfo(filename)))
+    if (const Core::MimeType mt = Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(filename)))
         if (ProjectFileFactory *pf = findFactory<ProjectFileFactory>(mt.type(), m_fileFactories.constBegin(), m_fileFactories.constEnd()))
             return pf;
     qWarning("Unable to find project file factory for '%s'", filename.toUtf8().constData());
@@ -705,9 +706,9 @@ void ProjectExplorerPlugin::unloadProject()
 
     bool success = false;
     if (readonlycount > 0)
-        success = m_core->fileManager()->saveModifiedFiles(filesToSave).isEmpty();
+        success = Core::ICore::instance()->fileManager()->saveModifiedFiles(filesToSave).isEmpty();
     else
-        success = m_core->fileManager()->saveModifiedFilesSilently(filesToSave).isEmpty();
+        success = Core::ICore::instance()->fileManager()->saveModifiedFilesSilently(filesToSave).isEmpty();
 
     if (!success)
         return;
@@ -729,7 +730,7 @@ void ProjectExplorerPlugin::clearSession()
 
 void ProjectExplorerPlugin::extensionsInitialized()
 {
-    m_fileFactories = ProjectFileFactory::createFactories(m_core, &m_projectFilterString);
+    m_fileFactories = ProjectFileFactory::createFactories(&m_projectFilterString);
     foreach (ProjectFileFactory *pf, m_fileFactories) {
         m_profileMimeTypes += pf->mimeTypes();
         addAutoReleasedObject(pf);
@@ -755,7 +756,7 @@ void ProjectExplorerPlugin::newProject()
         defaultLocation = dir.absolutePath();
     }
 
-    m_core->showNewItemDialog(tr("New Project", "Title of dialog"),
+    Core::ICore::instance()->showNewItemDialog(tr("New Project", "Title of dialog"),
                               Core::BaseFileWizard::findWizardsOfKind(Core::IWizard::ProjectWizard),
                               defaultLocation);
     updateActions();
@@ -805,7 +806,7 @@ void ProjectExplorerPlugin::savePersistentSettings()
         m_session->save();
     }
 
-    QSettings *s = m_core->settings();
+    QSettings *s = Core::ICore::instance()->settings();
     if (s) {
         s->setValue("ProjectExplorer/StartupSession", m_session->file()->fileName());
         s->setValue("ProjectExplorer/RecentProjects/Files", m_recentProjects);
@@ -829,14 +830,14 @@ bool ProjectExplorerPlugin::openProjects(const QStringList &fileNames)
     if (debug)
         qDebug() << "ProjectExplorerPlugin - opening projects " << fileNames;
 
-    QList<IProjectManager*> projectManagers =
-        m_core->pluginManager()->getObjects<IProjectManager>();
+    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
+    QList<IProjectManager*> projectManagers = pm->getObjects<IProjectManager>();
 
     //QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    // bool blocked = blockSignals(true);
     QList<Project*> openedPro;
-    foreach (QString fileName, fileNames)
-        if (const Core::MimeType mt = m_core->mimeDatabase()->findByFile(QFileInfo(fileName))) {
+    foreach (const QString &fileName, fileNames) {
+        if (const Core::MimeType mt = Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(fileName))) {
             foreach (IProjectManager *manager, projectManagers)
                 if (manager->mimeType() == mt.type()) {
                     if (Project *pro = manager->openProject(fileName))
@@ -845,6 +846,7 @@ bool ProjectExplorerPlugin::openProjects(const QStringList &fileNames)
                     break;
                 }
         }
+    }
     //blockSignals(blocked);
 
     if (openedPro.isEmpty()) {
@@ -868,7 +870,7 @@ bool ProjectExplorerPlugin::openProjects(const QStringList &fileNames)
 
     updateActions();
 
-    m_core->modeManager()->activateMode(Core::Constants::MODE_EDIT);
+    Core::ICore::instance()->modeManager()->activateMode(Core::Constants::MODE_EDIT);
     QApplication::restoreOverrideCursor();
 
     return true;
@@ -984,7 +986,7 @@ void ProjectExplorerPlugin::restoreSession()
     }
 
     // update welcome page
-    Core::ModeManager *modeManager = m_core->modeManager();
+    Core::ModeManager *modeManager = Core::ICore::instance()->modeManager();
     connect(modeManager, SIGNAL(currentModeChanged(Core::IMode*)), this, SLOT(currentModeChanged(Core::IMode*)));
     if (Core::Internal::WelcomeMode *welcomeMode = qobject_cast<Core::Internal::WelcomeMode*>(modeManager->mode(Core::Constants::MODE_WELCOME))) {
         updateWelcomePage(welcomeMode);
@@ -992,7 +994,7 @@ void ProjectExplorerPlugin::restoreSession()
         connect(welcomeMode, SIGNAL(requestProject(QString)), this, SLOT(loadProject(QString)));
     }
 
-    m_core->openFiles(arguments);
+    Core::ICore::instance()->openFiles(arguments);
     updateActions();
 
 }
@@ -1119,6 +1121,8 @@ void ProjectExplorerPlugin::setCurrent(Project *project, QString filePath, Node
     else
         node = m_session->nodeForFile(filePath);
 
+    Core::ICore *core = Core::ICore::instance();
+
     bool projectChanged = false;
     if (m_currentProject != project) {
         int oldContext = -1;
@@ -1133,11 +1137,11 @@ void ProjectExplorerPlugin::setCurrent(Project *project, QString filePath, Node
             newContext = project->projectManager()->projectContext();
             newLanguageID = project->projectManager()->projectLanguage();
         }
-        m_core->removeAdditionalContext(oldContext);
-        m_core->removeAdditionalContext(oldLanguageID);
-        m_core->addAdditionalContext(newContext);
-        m_core->addAdditionalContext(newLanguageID);
-        m_core->updateContext();
+        core->removeAdditionalContext(oldContext);
+        core->removeAdditionalContext(oldLanguageID);
+        core->addAdditionalContext(newContext);
+        core->addAdditionalContext(newLanguageID);
+        core->updateContext();
 
         m_currentProject = project;
 
@@ -1155,16 +1159,16 @@ void ProjectExplorerPlugin::setCurrent(Project *project, QString filePath, Node
             qDebug() << "ProjectExplorer - currentProjectChanged(" << (project ? project->name() : "0") << ")";
         // Enable the right VCS
         if (const Core::IFile *projectFile = project ? project->file() : static_cast<const Core::IFile *>(0)) {
-            m_core->vcsManager()->setVCSEnabled(QFileInfo(projectFile->fileName()).absolutePath());
+            core->vcsManager()->setVCSEnabled(QFileInfo(projectFile->fileName()).absolutePath());
         } else {
-            m_core->vcsManager()->setAllVCSEnabled();
+            core->vcsManager()->setAllVCSEnabled();
         }
 
         emit currentProjectChanged(project);
         updateActions();
     }
 
-    m_core->fileManager()->setCurrentFile(filePath);
+    core->fileManager()->setCurrentFile(filePath);
 }
 
 void ProjectExplorerPlugin::updateActions()
@@ -1225,7 +1229,7 @@ bool ProjectExplorerPlugin::saveModifiedFiles(const QList<Project *> & projects)
     if (debug)
         qDebug() << "ProjectExplorerPlugin::saveModifiedFiles";
 
-    QList<Core::IFile *> modifiedFi = m_core->fileManager()->modifiedFiles();
+    QList<Core::IFile *> modifiedFi = Core::ICore::instance()->fileManager()->modifiedFiles();
     QMap<QString, Core::IFile *> modified;
 
     QStringList allFiles;
@@ -1256,7 +1260,7 @@ bool ProjectExplorerPlugin::saveModifiedFiles(const QList<Project *> & projects)
 
     if (!filesToSave.isEmpty()) {
         bool cancelled;
-        m_core->fileManager()->saveModifiedFiles(filesToSave, &cancelled,
+        Core::ICore::instance()->fileManager()->saveModifiedFiles(filesToSave, &cancelled,
             tr("The following dependencies are modified, do you want to save them?"));
         if (cancelled) {
             return false;
@@ -1430,7 +1434,8 @@ void ProjectExplorerPlugin::startupProjectChanged()
 // NBS TODO implement more than one runner
 IRunConfigurationRunner *ProjectExplorerPlugin::findRunner(QSharedPointer<RunConfiguration> config, const QString &mode)
 {
-    const QList<IRunConfigurationRunner *> runners = m_core->pluginManager()->getObjects<IRunConfigurationRunner>();
+    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
+    const QList<IRunConfigurationRunner *> runners = pm->getObjects<IRunConfigurationRunner>();
     foreach (IRunConfigurationRunner *runner, runners)
         if (runner->canRun(config, mode))
             return runner;
@@ -1482,7 +1487,7 @@ void ProjectExplorerPlugin::updateRecentProjectMenu()
         qDebug() << "ProjectExplorerPlugin::updateRecentProjectMenu";
 
     Core::ActionContainer *aci =
-        m_core->actionManager()->actionContainer(Constants::M_RECENTPROJECTS);
+        Core::ICore::instance()->actionManager()->actionContainer(Constants::M_RECENTPROJECTS);
     QMenu *menu = aci->menu();
     menu->clear();
     m_recentProjectsActions.clear();
@@ -1549,7 +1554,7 @@ void ProjectExplorerPlugin::addNewFile()
     if (!m_currentNode && m_currentNode->nodeType() == ProjectNodeType)
         return;
     const QString location = QFileInfo(m_currentNode->path()).dir().absolutePath();
-    m_core->showNewItemDialog(tr("New File", "Title of dialog"),
+    Core::ICore::instance()->showNewItemDialog(tr("New File", "Title of dialog"),
                               Core::BaseFileWizard::findWizardsOfKind(Core::IWizard::FileWizard)
                               + Core::BaseFileWizard::findWizardsOfKind(Core::IWizard::ClassWizard),
                               location);
@@ -1560,14 +1565,15 @@ void ProjectExplorerPlugin::addExistingFiles()
     if (!m_currentNode && m_currentNode->nodeType() == ProjectNodeType)
         return;
     ProjectNode *projectNode = qobject_cast<ProjectNode*>(m_currentNode);
+    Core::ICore *core = Core::ICore::instance();
     const QString dir = QFileInfo(m_currentNode->path()).dir().absolutePath();
-    QStringList fileNames = QFileDialog::getOpenFileNames(m_core->mainWindow(), tr("Add Existing Files"), dir);
+    QStringList fileNames = QFileDialog::getOpenFileNames(core->mainWindow(), tr("Add Existing Files"), dir);
     if (fileNames.isEmpty())
         return;
 
     QHash<FileType, QString> fileTypeToFiles;
     foreach (const QString &fileName, fileNames) {
-        FileType fileType = typeForFileName(m_core->mimeDatabase(), QFileInfo(fileName));
+        FileType fileType = typeForFileName(core->mimeDatabase(), QFileInfo(fileName));
         fileTypeToFiles.insertMulti(fileType, fileName);
     }
 
@@ -1578,17 +1584,17 @@ void ProjectExplorerPlugin::addExistingFiles()
     if (!notAdded.isEmpty()) {
         QString message = tr("Could not add following files to project %1:\n").arg(projectNode->name());
         QString files = notAdded.join("\n");
-        QMessageBox::warning(m_core->mainWindow(), tr("Add files to project failed"),
+        QMessageBox::warning(core->mainWindow(), tr("Add files to project failed"),
                              message + files);
         foreach (const QString &file, notAdded)
             fileNames.removeOne(file);
     }
 
-    if (Core::IVersionControl *vcManager = m_core->vcsManager()->findVersionControlForDirectory(dir))
+    if (Core::IVersionControl *vcManager = core->vcsManager()->findVersionControlForDirectory(dir))
         if (vcManager->supportsOperation(Core::IVersionControl::AddOperation)) {
             const QString files = fileNames.join(QString(QLatin1Char('\n')));
             QMessageBox::StandardButton button =
-                QMessageBox::question(m_core->mainWindow(), tr("Add to Version Control"),
+                QMessageBox::question(core->mainWindow(), tr("Add to Version Control"),
                                       tr("Add files\n%1\nto version control (%2)?").arg(files, vcManager->name()),
                                       QMessageBox::Yes | QMessageBox::No);
             if (button == QMessageBox::Yes) {
@@ -1601,7 +1607,7 @@ void ProjectExplorerPlugin::addExistingFiles()
                 if (!notAddedToVc.isEmpty()) {
                     const QString message = tr("Could not add following files to version control (%1)\n").arg(vcManager->name());
                     const QString filesNotAdded = notAddedToVc.join(QString(QLatin1Char('\n')));
-                    QMessageBox::warning(m_core->mainWindow(), tr("Add files to version control failed"),
+                    QMessageBox::warning(core->mainWindow(), tr("Add files to version control failed"),
                                          message + filesNotAdded);
                 }
             }
@@ -1612,19 +1618,22 @@ void ProjectExplorerPlugin::openFile()
 {
     if (m_currentNode)
         return;
-    m_core->editorManager()->openEditor(m_currentNode->path());
-    m_core->editorManager()->ensureEditorManagerVisible();
+    Core::ICore *core = Core::ICore::instance();
+    core->editorManager()->openEditor(m_currentNode->path());
+    core->editorManager()->ensureEditorManagerVisible();
 }
 
 void ProjectExplorerPlugin::removeFile()
 {
     if (!m_currentNode && m_currentNode->nodeType() == FileNodeType)
         return;
+
     FileNode *fileNode = qobject_cast<FileNode*>(m_currentNode);
+    Core::ICore *core = Core::ICore::instance();
 
     const QString filePath = m_currentNode->path();
     const QString fileDir = QFileInfo(filePath).dir().absolutePath();
-    RemoveFileDialog removeFileDialog(filePath, m_core->mainWindow());
+    RemoveFileDialog removeFileDialog(filePath, core->mainWindow());
 
     if (removeFileDialog.exec() == QDialog::Accepted) {
         const bool deleteFile = removeFileDialog.isDeleteFileChecked();
@@ -1634,13 +1643,13 @@ void ProjectExplorerPlugin::removeFile()
         Q_ASSERT(projectNode);
 
         if (!projectNode->removeFiles(fileNode->fileType(), QStringList(filePath))) {
-            QMessageBox::warning(m_core->mainWindow(), tr("Remove file failed"),
+            QMessageBox::warning(core->mainWindow(), tr("Remove file failed"),
                                  tr("Could not remove file %1 from project %2.").arg(filePath).arg(projectNode->name()));
             return;
         }
 
         // remove from version control
-        m_core->vcsManager()->showDeleteDialog(filePath);
+        core->vcsManager()->showDeleteDialog(filePath);
 
         // remove from file system
         if (deleteFile) {
@@ -1649,7 +1658,7 @@ void ProjectExplorerPlugin::removeFile()
             if (file.exists()) {
                 // could have been deleted by vc
                 if (!file.remove())
-                    QMessageBox::warning(m_core->mainWindow(), tr("Delete file failed"),
+                    QMessageBox::warning(core->mainWindow(), tr("Delete file failed"),
                                          tr("Could not delete file %1.").arg(filePath));
             }
         }
@@ -1753,11 +1762,12 @@ void ProjectExplorerPlugin::populateOpenWithMenu()
     bool anyMatches = false;
     const QString fileName = currentNode()->path();
 
-    if (const Core::MimeType mt = m_core->mimeDatabase()->findByFile(QFileInfo(fileName))) {
-        const EditorFactoryList factories = m_core->editorManager()->editorFactories(mt, false);
+    Core::ICore *core = Core::ICore::instance();
+    if (const Core::MimeType mt = core->mimeDatabase()->findByFile(QFileInfo(fileName))) {
+        const EditorFactoryList factories = core->editorManager()->editorFactories(mt, false);
         anyMatches = !factories.empty();
         if (anyMatches) {
-            const QList<Core::IEditor *> editorsOpenForFile = m_core->editorManager()->editorsForFileName(fileName);
+            const QList<Core::IEditor *> editorsOpenForFile = core->editorManager()->editorsForFileName(fileName);
             // Add all suitable editors
             foreach (Core::IEditorFactory *editorFactory, factories) {
                 // Add action to open with this very editor factory
@@ -1792,8 +1802,9 @@ void ProjectExplorerPlugin::openWithMenuTriggered(QAction *action)
         qWarning() << "Editor Factory not attached to action, can't happen"<<editorFactory;
         return;
     }
-    m_core->editorManager()->openEditor(currentNode()->path(), editorFactory->kind());
-    m_core->editorManager()->ensureEditorManagerVisible();
+    Core::EditorManager *em = Core::ICore::instance()->editorManager();
+    em->openEditor(currentNode()->path(), editorFactory->kind());
+    em->ensureEditorManagerVisible();
 }
 
 void ProjectExplorerPlugin::updateSessionMenu()
diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h
index 94e25159928c66cb77fd1a4a6086eeb6867410e5..d21adb8abda09a5404ccbd6866f32986737542c0 100644
--- a/src/plugins/projectexplorer/projectexplorer.h
+++ b/src/plugins/projectexplorer/projectexplorer.h
@@ -54,7 +54,6 @@
 
 namespace Core {
 class IContext;
-class ICore;
 class IMode;
 class IFileFactory;
 namespace Internal {
@@ -239,7 +238,6 @@ private:
     QMenu *m_runConfigurationMenu;
     QActionGroup *m_runConfigurationActionGroup;
 
-    Core::ICore *m_core;
     Internal::ProjectWindow *m_proWindow;
     SessionManager *m_session;
 
@@ -264,6 +262,7 @@ private:
 };
 
 namespace Internal {
+
 class CoreListenerCheckingForRunningBuild : public Core::ICoreListener
 {
     Q_OBJECT
@@ -275,7 +274,8 @@ public:
 private:
     BuildManager *m_manager;
 };
-}
+
+} // namespace Internal
 
 } // namespace ProjectExplorer
 
diff --git a/src/plugins/projectexplorer/projectfilewizardextension.cpp b/src/plugins/projectexplorer/projectfilewizardextension.cpp
index 6b928db16b553ca39369ac295180aff76420b8bc..b897dd44ff91082fb7704fa870d1376bd7043398 100644
--- a/src/plugins/projectexplorer/projectfilewizardextension.cpp
+++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp
@@ -87,16 +87,16 @@ void AllProjectNodesVisitor::visitProjectNode(ProjectNode *node)
 }
 
 // --------- ProjectWizardContext
-struct ProjectWizardContext {
+struct ProjectWizardContext
+{
     Core::IVersionControl *versionControl;
     ProjectNodeList projects;
     ProjectWizardPage *page;
 };
 
 // ---- ProjectFileWizardExtension
-ProjectFileWizardExtension::ProjectFileWizardExtension(Core::ICore *core) :
-    m_core(core),
-    m_context(0)
+ProjectFileWizardExtension::ProjectFileWizardExtension()
+  : m_context(0)
 {
 }
 
@@ -115,7 +115,7 @@ void ProjectFileWizardExtension::firstExtensionPageShown(const QList<Core::Gener
         fileNames.push_back(f.path());
 
     const QString directory = QFileInfo(fileNames.front()).absolutePath();
-    m_context->versionControl = m_core->vcsManager()->findVersionControlForDirectory(directory);
+    m_context->versionControl = Core::ICore::instance()->vcsManager()->findVersionControlForDirectory(directory);
 
     m_context->page->setFilesDisplay(fileNames);
 
@@ -175,7 +175,7 @@ bool ProjectFileWizardExtension::process(const QList<Core::GeneratedFile> &files
         TypeFileMap typeFileMap;
         foreach (const Core::GeneratedFile &generatedFile, files) {
             const QString path = generatedFile.path();
-            typeFileMap.insert(typeForFileName(m_core->mimeDatabase(), path), path);
+            typeFileMap.insert(typeForFileName(Core::ICore::instance()->mimeDatabase(), path), path);
         }
         foreach (FileType type, typeFileMap.uniqueKeys()) {
             const QStringList files = typeFileMap.values(type);
diff --git a/src/plugins/projectexplorer/projectfilewizardextension.h b/src/plugins/projectexplorer/projectfilewizardextension.h
index 3008b0772e69f80d04bdde553f55c0f7483278f1..e4930e9ff0945c13e27ee7103c5d8ab76a2e8931 100644
--- a/src/plugins/projectexplorer/projectfilewizardextension.h
+++ b/src/plugins/projectexplorer/projectfilewizardextension.h
@@ -36,10 +36,6 @@
 
 #include <coreplugin/ifilewizardextension.h>
 
-namespace Core {
-    class ICore;
-}
-
 namespace ProjectExplorer {
 
 namespace Internal {
@@ -54,7 +50,7 @@ class ProjectFileWizardExtension : public Core::IFileWizardExtension
 {
     Q_OBJECT
 public:
-    explicit ProjectFileWizardExtension(Core::ICore *core);
+    explicit ProjectFileWizardExtension();
     virtual ~ProjectFileWizardExtension();
 
     virtual QList<QWizardPage *> extensionPages(const Core::IWizard *wizard);
@@ -64,7 +60,6 @@ public slots:
     virtual void firstExtensionPageShown(const QList<Core::GeneratedFile> &);
 
 private:
-    Core::ICore *m_core;
     ProjectWizardContext *m_context;
 };
 
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 7015c70f77574974be20dbf0a566d76cb7a6073f..2a5ae1a42b650f17e0a769fc5950b12b36ebd1e2 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -61,14 +61,12 @@ namespace {
 bool debug = false;
 }
 
-ProjectWindow::ProjectWindow(Core::ICore *core, QWidget *parent) :
-    QWidget(parent),
-    m_core(core)
+ProjectWindow::ProjectWindow(QWidget *parent) : QWidget(parent)
 {
     setWindowTitle(tr("Project Explorer"));
     setWindowIcon(QIcon(":/projectexplorer/images/projectexplorer.png"));
 
-    ExtensionSystem::PluginManager *pm = m_core->pluginManager();
+    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
     ProjectExplorerPlugin *projectExplorer = m_projectExplorer = pm->getObject<ProjectExplorerPlugin>();
     m_session = projectExplorer->session();
 
diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h
index c9b387ceaa29e0c7d9cde7742c78b254e001624a..b7ea0b6005f41c3623caeb4e5b199aa7039fd164 100644
--- a/src/plugins/projectexplorer/projectwindow.h
+++ b/src/plugins/projectexplorer/projectwindow.h
@@ -43,10 +43,6 @@ class QTreeWidget;
 class QTreeWidgetItem;
 QT_END_NAMESPACE
 
-namespace Core {
-class ICore;
-}
-
 namespace ProjectExplorer {
 
 class Project;
@@ -56,13 +52,12 @@ class SessionManager;
 
 namespace Internal {
 
-
 class ProjectWindow : public QWidget
 {
     Q_OBJECT
 
 public:
-    ProjectWindow(Core::ICore *core, QWidget *parent = 0);
+    explicit ProjectWindow(QWidget *parent = 0);
     ~ProjectWindow();
 
 private slots:
@@ -75,7 +70,6 @@ private slots:
     void handleCurrentItemChanged(QTreeWidgetItem *);
 
 private:
-    Core::ICore *m_core;
     SessionManager *m_session;
     ProjectExplorerPlugin *m_projectExplorer;
 
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index e771109d066a56056223c6f69f13359a2ef1c70f..a8fdc907cd0bb1a24a4fdb4fab2092a45f443310 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -381,9 +381,10 @@ void Qt4Project::updateCodeModel()
         qDebug()<<"Qt4Project::updateCodeModel()";
 
     CppTools::CppModelManagerInterface *modelmanager =
-        m_manager->pluginManager()->getObject<CppTools::CppModelManagerInterface>();
+        ExtensionSystem::PluginManager::instance()
+            ->getObject<CppTools::CppModelManagerInterface>();
 
-    if (! modelmanager)
+    if (!modelmanager)
         return;
 
     QStringList allIncludePaths;
@@ -644,7 +645,7 @@ void Qt4Project::newBuildConfiguration(const QString &buildConfiguration)
 
 void Qt4Project::proFileParseError(const QString &errorMessage)
 {
-    m_manager->core()->messageManager()->printToOutputPane(errorMessage);
+    Core::ICore::instance()->messageManager()->printToOutputPane(errorMessage);
 }
 
 Qt4ProFileNode *Qt4Project::rootProjectNode() const
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.cpp b/src/plugins/qt4projectmanager/qt4projectmanager.cpp
index 35fd609b1179c36b26e480d5a386b5f650211f35..8d44d81df20c0b9c3f0fee38eeab28ea44c03bf9 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.cpp
@@ -54,13 +54,13 @@
 #include <projectexplorer/projectexplorerconstants.h>
 #include <utils/listutils.h>
 
-#include <QtCore/QVariant>
-#include <QtCore/QFileInfo>
-#include <QtCore/QDir>
 #include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
 #include <QtCore/QLinkedList>
-#include <QtGui/QMenu>
+#include <QtCore/QVariant>
 #include <QtGui/QFileDialog>
+#include <QtGui/QMenu>
 #include <QtGui/QMessageBox>
 
 using namespace Qt4ProjectManager;
@@ -82,15 +82,14 @@ static const char* qt4FileTypes[] = {
     "Qt4ResourceFiles"
 };
 
-Qt4Manager::Qt4Manager(Qt4ProjectManagerPlugin *plugin, Core::ICore *core) :
-    m_mimeType(QLatin1String(Qt4ProjectManager::Constants::PROFILE_MIMETYPE)),
+Qt4Manager::Qt4Manager(Qt4ProjectManagerPlugin *plugin)
+  : m_mimeType(QLatin1String(Qt4ProjectManager::Constants::PROFILE_MIMETYPE)),
     m_plugin(plugin),
-    m_core(core),
     m_projectExplorer(0),
     m_contextProject(0),
     m_languageID(0)
 {
-    m_languageID = m_core->uniqueIDManager()->
+    m_languageID = Core::ICore::instance()->uniqueIDManager()->
         uniqueIdentifier(ProjectExplorer::Constants::LANG_CXX);
 }
 
@@ -116,7 +115,8 @@ void Qt4Manager::notifyChanged(const QString &name)
 
 void Qt4Manager::init()
 {
-    m_projectExplorer = m_core->pluginManager()->getObject<ProjectExplorer::ProjectExplorerPlugin>();
+    m_projectExplorer = ExtensionSystem::PluginManager::instance()
+        ->getObject<ProjectExplorer::ProjectExplorerPlugin>();
 }
 
 int Qt4Manager::projectContext() const
@@ -143,7 +143,8 @@ ProjectExplorer::Project* Qt4Manager::openProject(const QString &fileName)
 
     QString errorMessage;
 
-    m_core->messageManager()->displayStatusBarMessage(tr("Loading project %1 ...").arg(fileName), 50000);
+    Core::MessageManager *messageManager = Core::ICore::instance()->messageManager();
+    messageManager->displayStatusBarMessage(tr("Loading project %1 ...").arg(fileName), 50000);
 
     // TODO Make all file paths relative & remove this hack
     // We convert the path to an absolute one here because qt4project.cpp
@@ -152,25 +153,25 @@ ProjectExplorer::Project* Qt4Manager::openProject(const QString &fileName)
     QString canonicalFilePath = QFileInfo(fileName).canonicalFilePath();
 
     if (canonicalFilePath.isEmpty()) {
-        m_core->messageManager()->printToOutputPane(tr("Failed opening project '%1': Project file does not exist").arg(canonicalFilePath));
-        m_core->messageManager()->displayStatusBarMessage(tr("Failed opening project"), 5000);
+        messageManager->printToOutputPane(tr("Failed opening project '%1': Project file does not exist").arg(canonicalFilePath));
+        messageManager->displayStatusBarMessage(tr("Failed opening project"), 5000);
         return 0;
     }
 
     foreach (ProjectExplorer::Project *pi, projectExplorer()->session()->projects()) {
         if (canonicalFilePath == pi->file()->fileName()) {
-            m_core->messageManager()->printToOutputPane(tr("Failed opening project '%1': Project already open").arg(canonicalFilePath));
-            m_core->messageManager()->displayStatusBarMessage(tr("Failed opening project"), 5000);
+            messageManager->printToOutputPane(tr("Failed opening project '%1': Project already open").arg(canonicalFilePath));
+            messageManager->displayStatusBarMessage(tr("Failed opening project"), 5000);
             return 0;
         }
     }
 
-    m_core->messageManager()->displayStatusBarMessage(tr("Opening %1 ...").arg(fileName));
+    messageManager->displayStatusBarMessage(tr("Opening %1 ...").arg(fileName));
     QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
 
     Qt4Project *pro = new Qt4Project(this, canonicalFilePath);
 
-    m_core->messageManager()->displayStatusBarMessage(tr("Done opening project"), 5000);
+    messageManager->displayStatusBarMessage(tr("Done opening project"), 5000);
     return pro;
 }
 
@@ -179,16 +180,6 @@ ProjectExplorer::ProjectExplorerPlugin *Qt4Manager::projectExplorer() const
     return m_projectExplorer;
 }
 
-Core::ICore *Qt4Manager::core() const
-{
-    return m_core;
-}
-
-ExtensionSystem::PluginManager *Qt4Manager::pluginManager() const
-{
-    return m_core->pluginManager();
-}
-
 ProjectExplorer::Node *Qt4Manager::contextNode() const
 {
     return m_contextNode;
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.h b/src/plugins/qt4projectmanager/qt4projectmanager.h
index 4bb4d6eaf188bed1ed8683a276c4ea4e367cecff..b6fc317362e7dbf20950f3df9b1de7036b1c727f 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.h
@@ -44,10 +44,6 @@ namespace ExtensionSystem {
 class PluginManager;
 }
 
-namespace Core {
-class ICore;
-}
-
 namespace ProjectExplorer {
 class Project;
 class ProjectExplorerPlugin;
@@ -64,13 +60,12 @@ class QtVersionManager;
 
 class Qt4Project;
 
-class Qt4Manager
-  : public ProjectExplorer::IProjectManager
+class Qt4Manager : public ProjectExplorer::IProjectManager
 {
     Q_OBJECT
 
 public:
-    Qt4Manager(Internal::Qt4ProjectManagerPlugin *plugin, Core::ICore *core);
+    Qt4Manager(Internal::Qt4ProjectManagerPlugin *plugin);
     ~Qt4Manager();
 
     void init();
@@ -80,10 +75,8 @@ public:
     void notifyChanged(const QString &name);
 
     ProjectExplorer::ProjectExplorerPlugin *projectExplorer() const;
-    ExtensionSystem::PluginManager *pluginManager() const;
-    Core::ICore *core() const;
 
-    //ProjectExplorer::IProjectManager
+    // ProjectExplorer::IProjectManager
     int projectContext() const;
     int projectLanguage() const;
 
@@ -111,7 +104,6 @@ private:
 
     const QString m_mimeType;
     Internal::Qt4ProjectManagerPlugin *m_plugin;
-    Core::ICore *m_core;
     ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer;
 
     ProjectExplorer::Node *m_contextNode;
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
index f5c2a78ec7f45499baa6b23ae44a43dc067710c7..0d90983aa88f389999da2c8a909283490364ec23 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
@@ -48,6 +48,7 @@
 #include "profilereader.h"
 #include "gdbmacrosbuildstep.h"
 
+#include <coreplugin/icore.h>
 #include <extensionsystem/pluginmanager.h>
 #include <projectexplorer/buildmanager.h>
 #include <projectexplorer/project.h>
@@ -59,9 +60,9 @@
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <texteditor/texteditoractionhandler.h>
 
-#include <QtCore/qplugin.h>
+#include <QtCore/QDebug>
+#include <QtCore/QtPlugin>
 #include <QtGui/QMenu>
-#include <QDebug>
 
 #ifdef WITH_TESTS
 #include <QTest>
@@ -95,33 +96,37 @@ static Core::Command *createSeparator(Core::ActionManager *am,
     return am->registerAction(tmpaction, name, context);
 }
 */
-bool Qt4ProjectManagerPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage)
+
+bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *errorMessage)
 {
+    Q_UNUSED(arguments);
+ 
     Core::ICore *core = Core::ICore::instance();
     if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":qt4projectmanager/Qt4ProjectManager.mimetypes.xml"), errorMessage))
         return false;
 
-    m_projectExplorer = core->pluginManager()->getObject<ProjectExplorer::ProjectExplorerPlugin>();
+    m_projectExplorer = ExtensionSystem::PluginManager::instance()
+        ->getObject<ProjectExplorer::ProjectExplorerPlugin>();
 
     Core::ActionManager *am = core->actionManager();
 
     //create and register objects
-    m_qt4ProjectManager = new Qt4Manager(this, core);
+    m_qt4ProjectManager = new Qt4Manager(this);
     addObject(m_qt4ProjectManager);
 
     TextEditor::TextEditorActionHandler *editorHandler
-            = new TextEditor::TextEditorActionHandler(core, Constants::C_PROFILEEDITOR);
+            = new TextEditor::TextEditorActionHandler(Constants::C_PROFILEEDITOR);
 
     m_proFileEditorFactory = new ProFileEditorFactory(m_qt4ProjectManager, editorHandler);
     addObject(m_proFileEditorFactory);
 
-    GuiAppWizard *guiWizard = new GuiAppWizard(core);
+    GuiAppWizard *guiWizard = new GuiAppWizard;
     addAutoReleasedObject(guiWizard);
 
-    ConsoleAppWizard *consoleWizard = new ConsoleAppWizard(core);
+    ConsoleAppWizard *consoleWizard = new ConsoleAppWizard;
     addAutoReleasedObject(consoleWizard);
 
-    LibraryWizard *libWizard = new LibraryWizard(core);
+    LibraryWizard *libWizard = new LibraryWizard;
     addAutoReleasedObject(libWizard);
 
     addAutoReleasedObject(new QMakeBuildStepFactory);
diff --git a/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp b/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp
index 73884791fe829f8b4e9f36482e28aa269869a3d1..402ba7a2ffa3ba80efcb03d5f6d46b80867502ed 100644
--- a/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp
@@ -58,8 +58,8 @@ static const char *mainSourceFileC = "main";
 namespace Qt4ProjectManager {
 namespace Internal {
 
-ConsoleAppWizard::ConsoleAppWizard(Core::ICore *core) :
-    QtWizard(core, tr("Qt4 Console Application"),
+ConsoleAppWizard::ConsoleAppWizard()
+  : QtWizard(tr("Qt4 Console Application"),
              tr("Creates a Qt4 console application."),
              QIcon(":/wizards/images/console.png"))
 {
diff --git a/src/plugins/qt4projectmanager/wizards/consoleappwizard.h b/src/plugins/qt4projectmanager/wizards/consoleappwizard.h
index 36fff218ddefd88be03bf18011f8b87b86ec02fe..be080c08507354388a9f2c41ac78b178519672f7 100644
--- a/src/plugins/qt4projectmanager/wizards/consoleappwizard.h
+++ b/src/plugins/qt4projectmanager/wizards/consoleappwizard.h
@@ -46,7 +46,7 @@ class ConsoleAppWizard : public QtWizard
     Q_OBJECT
 
 public:
-    explicit ConsoleAppWizard(Core::ICore *core);
+    ConsoleAppWizard();
 
 protected:
     virtual QWizard *createWizardDialog(QWidget *parent,
diff --git a/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp b/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp
index 14df3821ccddfebb610926f50f4cc36298dc2618..d0a626aecce96b2f97a840d4fc34d34e151ea9e0 100644
--- a/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/guiappwizard.cpp
@@ -70,12 +70,10 @@ static inline QStringList baseClasses()
 }
 
 namespace Qt4ProjectManager {
-
 namespace Internal {
 
-GuiAppWizard::GuiAppWizard(Core::ICore *core) :
-    QtWizard(core,
-             tr("Qt4 Gui Application"),
+GuiAppWizard::GuiAppWizard()
+  : QtWizard(tr("Qt4 Gui Application"),
              tr("Creates a Qt4 Gui Application with one form."),
              QIcon(":/wizards/images/gui.png"))
 {
diff --git a/src/plugins/qt4projectmanager/wizards/guiappwizard.h b/src/plugins/qt4projectmanager/wizards/guiappwizard.h
index dd7d7e7d02d3cb5e8f6c22981cefb204f93b39be..d3ce961b2f2b415e25f3c59984d060777218c302 100644
--- a/src/plugins/qt4projectmanager/wizards/guiappwizard.h
+++ b/src/plugins/qt4projectmanager/wizards/guiappwizard.h
@@ -47,7 +47,7 @@ class GuiAppWizard : public QtWizard
     Q_OBJECT
 
 public:
-    explicit GuiAppWizard(Core::ICore *core);
+    GuiAppWizard();
 
 protected:
     virtual QWizard *createWizardDialog(QWidget *parent,
diff --git a/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.cpp b/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.cpp
index 0bc379ecbeaf50e76741b4fa52175d8a67e84008..0c3c6513eb36a90e071bd1e69dec534e549439f7 100644
--- a/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.cpp
+++ b/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.cpp
@@ -91,7 +91,7 @@ void GuiAppWizardDialog::setBaseClasses(const QStringList &baseClasses)
         m_filesPage->setBaseClassName(baseClasses.front());
 }
 
-void GuiAppWizardDialog::setSuffixes(const QString &header, const QString &source,  const QString &form)
+void GuiAppWizardDialog::setSuffixes(const QString &header, const QString &source, const QString &form)
 {
     m_filesPage->setSuffixes(header, source, form);
 }
diff --git a/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.h b/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.h
index 080cf802c26c606561f97a1752c9e8164dccbb59..dbd2b69a421b3379bac229904617f71ba1a8be79 100644
--- a/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.h
+++ b/src/plugins/qt4projectmanager/wizards/guiappwizarddialog.h
@@ -37,10 +37,12 @@
 #include <QtGui/QWizard>
 
 namespace Core {
-    namespace Utils {
-        class ProjectIntroPage;
-    }
-}
+namespace Utils {
+
+class ProjectIntroPage;
+
+} // namespace Utils
+} // namespace Core
 
 namespace Qt4ProjectManager {
 namespace Internal {
@@ -50,7 +52,8 @@ class ModulesPage;
 class FilesPage;
 
 // Additional parameters required besides QtProjectParameters
-struct GuiAppParameters {
+struct GuiAppParameters
+{
     GuiAppParameters();
     QString className;
     QString baseClassName;
diff --git a/src/plugins/qt4projectmanager/wizards/librarywizard.cpp b/src/plugins/qt4projectmanager/wizards/librarywizard.cpp
index e79cd1b6588f04b3eea9e7093a29401fcd59351f..788563f5cc3319edd46bdb3d084c38d05ecf7fc1 100644
--- a/src/plugins/qt4projectmanager/wizards/librarywizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/librarywizard.cpp
@@ -50,8 +50,8 @@ namespace Qt4ProjectManager {
 
 namespace Internal {
 
-LibraryWizard::LibraryWizard(Core::ICore *core) :
-    QtWizard(core, tr("C++ Library"),
+LibraryWizard::LibraryWizard()
+  : QtWizard(tr("C++ Library"),
              tr("Creates a C++ Library."),
              QIcon(":/wizards/images/lib.png"))
 {
@@ -69,8 +69,9 @@ QWizard *LibraryWizard::createWizardDialog(QWidget *parent,
 
 
 Core::GeneratedFiles LibraryWizard::generateFiles(const QWizard *w,
-                                                 QString * /*errorMessage*/) const
+                                                 QString *errorMessage) const
 {
+    Q_UNUSED(errorMessage);
     const LibraryWizardDialog *dialog = qobject_cast<const LibraryWizardDialog *>(w);
     const QtProjectParameters projectParams = dialog->parameters();
     const QString projectPath = projectParams.projectPath();
diff --git a/src/plugins/qt4projectmanager/wizards/librarywizard.h b/src/plugins/qt4projectmanager/wizards/librarywizard.h
index 203179d4c9114e72ad00698bf552def824c9d558..f5e6b2af845c377dd822a5771eade334b78fc62c 100644
--- a/src/plugins/qt4projectmanager/wizards/librarywizard.h
+++ b/src/plugins/qt4projectmanager/wizards/librarywizard.h
@@ -48,7 +48,7 @@ class LibraryWizard : public QtWizard
     Q_OBJECT
 
 public:
-    explicit LibraryWizard(Core::ICore *core);
+    LibraryWizard();
 
 protected:
     virtual QWizard *createWizardDialog(QWidget *parent,
diff --git a/src/plugins/qt4projectmanager/wizards/qtwizard.cpp b/src/plugins/qt4projectmanager/wizards/qtwizard.cpp
index b61861a8e6795af2dfbb18d29f6777a266b48654..a8fd467f80e40878b58148c7b18d11c7ddeb6f7b 100644
--- a/src/plugins/qt4projectmanager/wizards/qtwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/qtwizard.cpp
@@ -63,9 +63,8 @@ static inline Core::BaseFileWizardParameters
 }
 
 // -------------------- QtWizard
-QtWizard::QtWizard(Core::ICore *core, const QString &name,
-                   const QString &description, const QIcon &icon) :
-    Core::BaseFileWizard(wizardParameters(name, description, icon), core),
+QtWizard::QtWizard(const QString &name, const QString &description, const QIcon &icon) :
+    Core::BaseFileWizard(wizardParameters(name, description, icon)),
     m_projectExplorer(ExtensionSystem::PluginManager::instance()->getObject<ProjectExplorer::ProjectExplorerPlugin>())
 {
 }
@@ -103,7 +102,7 @@ bool QtWizard::postGenerateFiles(const Core::GeneratedFiles &l, QString *errorMe
 
 QString QtWizard::templateDir() const
 {
-    QString rc = core()->resourcePath();
+    QString rc = Core::ICore::instance()->resourcePath();
     rc += QLatin1String("/templates/qt4project");
     return rc;
 }
diff --git a/src/plugins/qt4projectmanager/wizards/qtwizard.h b/src/plugins/qt4projectmanager/wizards/qtwizard.h
index 9858251a9dfd98f80383448d5518f58e7f527cf4..dd031ef7e013a97bda2f8c3bbd8ce8e64cc62e30 100644
--- a/src/plugins/qt4projectmanager/wizards/qtwizard.h
+++ b/src/plugins/qt4projectmanager/wizards/qtwizard.h
@@ -38,13 +38,8 @@
 
 #include <coreplugin/basefilewizard.h>
 
-QT_BEGIN_NAMESPACE
-class QTextStream;
-class QDir;
-QT_END_NAMESPACE
-
 namespace ProjectExplorer {
-    class ProjectExplorerPlugin;
+class ProjectExplorerPlugin;
 }
 
 namespace Qt4ProjectManager {
@@ -60,14 +55,11 @@ namespace Internal {
 
 class QtWizard : public Core::BaseFileWizard
 {
-    Q_DISABLE_COPY(QtWizard)
     Q_OBJECT
-
-public:
+    Q_DISABLE_COPY(QtWizard)
 
 protected:
-    explicit QtWizard(Core::ICore *core, const QString &name,
-                      const QString &description, const QIcon &icon);
+    QtWizard(const QString &name, const QString &description, const QIcon &icon);
 
     QString templateDir() const;
 
diff --git a/src/plugins/qtscripteditor/qtscripteditor.cpp b/src/plugins/qtscripteditor/qtscripteditor.cpp
index 4062b69e5079a2a262ddb02ed2c8db86a76417d6..a7efcc0192c87e8924ae320290a3616f93f7d249 100644
--- a/src/plugins/qtscripteditor/qtscripteditor.cpp
+++ b/src/plugins/qtscripteditor/qtscripteditor.cpp
@@ -57,12 +57,10 @@ ScriptEditorEditable::ScriptEditorEditable(ScriptEditor *editor, const QList<int
 }
 
 ScriptEditor::ScriptEditor(const Context &context,
-                           Core::ICore *core,
                            TextEditor::TextEditorActionHandler *ah,
                            QWidget *parent) :
     TextEditor::BaseTextEditor(parent),
     m_context(context),
-    m_core(core),
     m_ah(ah)
 {
     setParenthesesMatchingEnabled(true);
@@ -84,7 +82,7 @@ Core::IEditor *ScriptEditorEditable::duplicate(QWidget *parent)
 
 ScriptEditor *ScriptEditor::duplicate(QWidget *parent)
 {
-    ScriptEditor *editor = new ScriptEditor(m_context, m_core, m_ah, parent);
+    ScriptEditor *editor = new ScriptEditor(m_context, m_ah, parent);
     editor->duplicateFrom(this);
     QtScriptEditorPlugin::initializeEditor(editor);
     return editor;
@@ -157,7 +155,7 @@ void ScriptEditor::contextMenuEvent(QContextMenuEvent *e)
 {
     QMenu *menu = createStandardContextMenu();
 
-    if (Core::ActionContainer *mcontext = m_core->actionManager()->actionContainer(QtScriptEditor::Constants::M_CONTEXT)) {
+    if (Core::ActionContainer *mcontext = Core::ICore::instance()->actionManager()->actionContainer(QtScriptEditor::Constants::M_CONTEXT)) {
         QMenu *contextMenu = mcontext->menu();
         foreach (QAction *action, contextMenu->actions())
             menu->addAction(action);
diff --git a/src/plugins/qtscripteditor/qtscripteditor.h b/src/plugins/qtscripteditor/qtscripteditor.h
index 1dda5a95e92677e97718a32346df491dab66aefa..d4f0ca94bb652dd95e7065cdd8fcec81cb7a3883 100644
--- a/src/plugins/qtscripteditor/qtscripteditor.h
+++ b/src/plugins/qtscripteditor/qtscripteditor.h
@@ -50,7 +50,7 @@ class ScriptEditor;
 class ScriptEditorEditable : public TextEditor::BaseTextEditorEditable
 {
 public:
-    ScriptEditorEditable(ScriptEditor *, const QList<int>&);
+    ScriptEditorEditable(ScriptEditor *, const QList<int> &);
     QList<int> context() const;
 
     bool duplicateSupported() const { return true; }
@@ -71,9 +71,8 @@ public:
     typedef QList<int> Context;
 
     ScriptEditor(const Context &context,
-                   Core::ICore *core,
-                   TextEditor::TextEditorActionHandler *ah,
-                   QWidget *parent = 0);
+                 TextEditor::TextEditorActionHandler *ah,
+                 QWidget *parent = 0);
     ~ScriptEditor();
 
     ScriptEditor *duplicate(QWidget *parent);
@@ -90,7 +89,6 @@ private:
     virtual void indentBlock(QTextDocument *doc, QTextBlock block, QChar typedChar);
 
     const Context m_context;
-    Core::ICore *m_core;
     TextEditor::TextEditorActionHandler *m_ah;
 };
 
diff --git a/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp b/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp
index bb306f1a3f2d724c913d45961c44f731b484a051..18d57a6a7b2394156658cf4ace54d0e168d58e76 100644
--- a/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp
+++ b/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp
@@ -35,17 +35,18 @@
 #include "qtscripteditorconstants.h"
 #include "qtscripteditor.h"
 
+#include <coreplugin/icore.h>
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/scriptmanager/scriptmanager.h>
 
+#include <QtCore/QDebug>
 #include <QtGui/QAction>
-#include <QtGui/QMessageBox>
 #include <QtGui/QMainWindow>
-#include <QtCore/QDebug>
+#include <QtGui/QMessageBox>
 
-static QAction *actionFromId(Core::ICore *core, const QString &id)
+static QAction *actionFromId(const QString &id)
 {
-    Core::Command *cmd = core->actionManager()->command(id);
+    Core::Command *cmd = Core::ICore::instance()->actionManager()->command(id);
     if (!cmd)
         return 0;
     return cmd->action();
@@ -54,9 +55,8 @@ static QAction *actionFromId(Core::ICore *core, const QString &id)
 namespace QtScriptEditor {
 namespace Internal {
 
-QtScriptEditorActionHandler::QtScriptEditorActionHandler(Core::ICore *core) :
-    TextEditor::TextEditorActionHandler(core,
-                                        QLatin1String(QtScriptEditor::Constants::C_QTSCRIPTEDITOR),
+QtScriptEditorActionHandler::QtScriptEditorActionHandler()
+  : TextEditor::TextEditorActionHandler(QLatin1String(QtScriptEditor::Constants::C_QTSCRIPTEDITOR),
                                         Format),
     m_runAction(0)
 {
@@ -65,7 +65,7 @@ QtScriptEditorActionHandler::QtScriptEditorActionHandler(Core::ICore *core) :
 void QtScriptEditorActionHandler::createActions()
 {
     TextEditor::TextEditorActionHandler::createActions();
-    m_runAction = actionFromId(core(), QLatin1String(QtScriptEditor::Constants::RUN));
+    m_runAction = actionFromId(QLatin1String(QtScriptEditor::Constants::RUN));
     connect(m_runAction, SIGNAL(triggered()), this, SLOT(run()));
 }
 
@@ -88,7 +88,7 @@ void QtScriptEditorActionHandler::run()
     // run
     Stack errorStack;
     QString errorMessage;
-    if (core()->scriptManager()->runScript(script, &errorMessage, &errorStack))
+    if (Core::ICore::instance()->scriptManager()->runScript(script, &errorMessage, &errorStack))
         return;
 
     // try to find a suitable error line in the stack
@@ -104,7 +104,7 @@ void QtScriptEditorActionHandler::run()
     }
     if (errorLineNumber)
         currentEditor()->gotoLine(errorLineNumber);
-    QMessageBox::critical(core()->mainWindow(), tr("Qt Script Error"), errorMessage);
+    QMessageBox::critical(Core::ICore::instance()->mainWindow(), tr("Qt Script Error"), errorMessage);
 }
 
 } // namespace Internal
diff --git a/src/plugins/qtscripteditor/qtscripteditoractionhandler.h b/src/plugins/qtscripteditor/qtscripteditoractionhandler.h
index d18ee2d25ff454fa6bb5960015bcbc6d1b0b1b63..c4940cfa160495f43be885fa7cc82832ef9e2626 100644
--- a/src/plugins/qtscripteditor/qtscripteditoractionhandler.h
+++ b/src/plugins/qtscripteditor/qtscripteditoractionhandler.h
@@ -44,7 +44,7 @@ class QtScriptEditorActionHandler : public TextEditor::TextEditorActionHandler
     Q_OBJECT
 
 public:
-    QtScriptEditorActionHandler(Core::ICore *core);
+    QtScriptEditorActionHandler();
 
 private:
     virtual void createActions();
diff --git a/src/plugins/qtscripteditor/qtscripteditorfactory.cpp b/src/plugins/qtscripteditor/qtscripteditorfactory.cpp
index 392b627363a74eca6b1df14aa89d35c3c1ab579a..9e169648f128b92b55140fa3cb18825d6d7f832b 100644
--- a/src/plugins/qtscripteditor/qtscripteditorfactory.cpp
+++ b/src/plugins/qtscripteditor/qtscripteditorfactory.cpp
@@ -37,23 +37,21 @@
 #include "qtscripteditorconstants.h"
 #include "qtscripteditorplugin.h"
 
+#include <coreplugin/icore.h>
 #include <coreplugin/editormanager/editormanager.h>
 
 #include <QtCore/QFileInfo>
-#include <QtCore/qdebug.h>
+#include <QtCore/QDebug>
 
 using namespace QtScriptEditor::Internal;
 using namespace QtScriptEditor::Constants;
 
-QtScriptEditorFactory::QtScriptEditorFactory(Core::ICore *core,
-                                             const Context &context,
-                                             QObject *parent) :
-    Core::IEditorFactory(parent),
+QtScriptEditorFactory::QtScriptEditorFactory(const Context &context, QObject *parent)
+  : Core::IEditorFactory(parent),
     m_kind(QLatin1String(C_QTSCRIPTEDITOR)),
     m_mimeTypes(QLatin1String(QtScriptEditor::Constants::C_QTSCRIPTEDITOR_MIMETYPE)),
     m_context(context),
-    m_core(core),
-    m_actionHandler(new QtScriptEditorActionHandler(core))
+    m_actionHandler(new QtScriptEditorActionHandler)
 {
 }
 
@@ -69,7 +67,7 @@ QString QtScriptEditorFactory::kind() const
 
 Core::IFile *QtScriptEditorFactory::open(const QString &fileName)
 {
-    Core::IEditor *iface = m_core->editorManager()->openEditor(fileName, kind());
+    Core::IEditor *iface = Core::ICore::instance()->editorManager()->openEditor(fileName, kind());
     if (!iface) {
         qWarning() << "QtScriptEditorFactory::open: openEditor failed for " << fileName;
         return 0;
@@ -79,7 +77,7 @@ Core::IFile *QtScriptEditorFactory::open(const QString &fileName)
 
 Core::IEditor *QtScriptEditorFactory::createEditor(QWidget *parent)
 {
-    ScriptEditor *rc =  new ScriptEditor(m_context, m_core, m_actionHandler, parent);
+    ScriptEditor *rc = new ScriptEditor(m_context, m_actionHandler, parent);
     QtScriptEditorPlugin::initializeEditor(rc);
     return rc->editableInterface();
 }
diff --git a/src/plugins/qtscripteditor/qtscripteditorfactory.h b/src/plugins/qtscripteditor/qtscripteditorfactory.h
index 08654aa035002c7764cae44bc3e5ea584e8e87d1..8048f30053dabbbe6d5d1ca695dd00ad071a5bd3 100644
--- a/src/plugins/qtscripteditor/qtscripteditorfactory.h
+++ b/src/plugins/qtscripteditor/qtscripteditorfactory.h
@@ -38,10 +38,6 @@
 
 #include <QtCore/QStringList>
 
-namespace  Core {
-class ICore;
-}
-
 namespace TextEditor {
 class TextEditorActionHandler;
 }
@@ -58,13 +54,11 @@ class QtScriptEditorFactory : public Core::IEditorFactory
 public:
     typedef QList<int> Context;
 
-    QtScriptEditorFactory(Core::ICore *core,
-                          const Context &context,
-                          QObject *parent);
+    QtScriptEditorFactory(const Context &context, QObject *parent);
     ~QtScriptEditorFactory();
 
     virtual QStringList mimeTypes() const;
-    //EditorFactory
+    // IEditorFactory
     QString kind() const;
     Core::IFile *open(const QString &fileName);
     Core::IEditor *createEditor(QWidget *parent);
@@ -74,7 +68,6 @@ private:
     const QStringList m_mimeTypes;
     const Context m_context;
 
-    Core::ICore *m_core;
     TextEditor::TextEditorActionHandler *m_actionHandler;
 };
 
diff --git a/src/plugins/qtscripteditor/qtscripteditorplugin.cpp b/src/plugins/qtscripteditor/qtscripteditorplugin.cpp
index dcf69b04b06c66f93265b419ad72edea0a01c7c2..41a11d5a7af4f7d6201d72cf7a53b1123b65c295 100644
--- a/src/plugins/qtscripteditor/qtscripteditorplugin.cpp
+++ b/src/plugins/qtscripteditor/qtscripteditorplugin.cpp
@@ -87,7 +87,7 @@ bool QtScriptEditorPlugin::initialize(const QStringList & /*arguments*/, QString
 
     registerActions(core);
 
-    m_editor = new QtScriptEditorFactory(core, m_context, this);
+    m_editor = new QtScriptEditorFactory(m_context, this);
     addObject(m_editor);
 
     Core::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
@@ -98,7 +98,7 @@ bool QtScriptEditorPlugin::initialize(const QStringList & /*arguments*/, QString
     m_wizard = new TextEditor::TextFileWizard(QLatin1String(QtScriptEditor::Constants::C_QTSCRIPTEDITOR_MIMETYPE),
                                               QLatin1String(QtScriptEditor::Constants::C_QTSCRIPTEDITOR),
                                               QLatin1String("qtscript$"),
-                                              wizardParameters, core, this);
+                                              wizardParameters, this);
     addObject(m_wizard);
 
     error_message->clear();
diff --git a/src/plugins/quickopen/basefilefilter.cpp b/src/plugins/quickopen/basefilefilter.cpp
index 65aea6d25527f4baf54ea11a88e644e300db571f..147cd5b07d14b7b45209d2004775737f2cb176bf 100644
--- a/src/plugins/quickopen/basefilefilter.cpp
+++ b/src/plugins/quickopen/basefilefilter.cpp
@@ -33,6 +33,7 @@
 
 #include "basefilefilter.h"
 
+#include <coreplugin/icore.h>
 #include <coreplugin/editormanager/editormanager.h>
 
 #include <QtCore/QDir>
@@ -40,11 +41,8 @@
 using namespace Core;
 using namespace QuickOpen;
 
-BaseFileFilter::BaseFileFilter(ICore *core)
-        : m_core(core),
-          m_files(QStringList()),
-          m_fileNames(QStringList()),
-          m_forceNewSearchList(false)
+BaseFileFilter::BaseFileFilter()
+  : m_forceNewSearchList(false)
 {
 }
 
@@ -91,8 +89,9 @@ QList<FilterEntry> BaseFileFilter::matchesFor(const QString &origEntry)
 
 void BaseFileFilter::accept(QuickOpen::FilterEntry selection) const
 {
-    m_core->editorManager()->openEditor(selection.internalData.toString());
-    m_core->editorManager()->ensureEditorManagerVisible();
+    Core::EditorManager *em = Core::ICore::instance()->editorManager();
+    em->openEditor(selection.internalData.toString());
+    em->ensureEditorManagerVisible();
 }
 
 void BaseFileFilter::generateFileNames()
diff --git a/src/plugins/quickopen/basefilefilter.h b/src/plugins/quickopen/basefilefilter.h
index ee9d302be5cdc454bdffd75840cd43df91bb39ab..711b84c0bae8c191384c51f26dbb8e251d2ee69f 100644
--- a/src/plugins/quickopen/basefilefilter.h
+++ b/src/plugins/quickopen/basefilefilter.h
@@ -37,12 +37,8 @@
 #include "quickopen_global.h"
 #include "iquickopenfilter.h"
 
-#include <coreplugin/icore.h>
-
 #include <QtCore/QString>
 #include <QtCore/QList>
-#include <QtCore/QByteArray>
-#include <QtGui/QWidget>
 
 namespace QuickOpen {
 
@@ -51,14 +47,13 @@ class QUICKOPEN_EXPORT BaseFileFilter : public QuickOpen::IQuickOpenFilter
     Q_OBJECT
 
 public:
-    BaseFileFilter(Core::ICore *core);
+    BaseFileFilter();
     QList<QuickOpen::FilterEntry> matchesFor(const QString &entry);
     void accept(QuickOpen::FilterEntry selection) const;
 
 protected:
     void generateFileNames();
 
-    Core::ICore *m_core;
     QStringList m_files;
     QStringList m_fileNames;
     QStringList m_previousResultPaths;
diff --git a/src/plugins/quickopen/directoryfilter.cpp b/src/plugins/quickopen/directoryfilter.cpp
index 84c60dfa8c746260f088365f5b3b055310c068da..8b70cbd51e9c26f6cbbdac666136e16dfe3d1764 100644
--- a/src/plugins/quickopen/directoryfilter.cpp
+++ b/src/plugins/quickopen/directoryfilter.cpp
@@ -35,20 +35,18 @@
 
 #include <QtCore/QDir>
 #include <QtCore/QStack>
-#include <QtGui/QDirModel>
 #include <QtGui/QCompleter>
 #include <QtGui/QFileDialog>
 #include <QtGui/QMessageBox>
 
-using namespace Core;
+#include <qtconcurrent/QtConcurrentTools>
+
 using namespace QuickOpen;
 using namespace QuickOpen::Internal;
 
-DirectoryFilter::DirectoryFilter(ICore *core)
-        : BaseFileFilter(core),
-          m_name(tr("Generic Directory Filter")),
-          m_directories(QStringList()),
-          m_filters(QStringList() << "*.h" << "*.cpp" << "*.ui" << "*.qrc")
+DirectoryFilter::DirectoryFilter()
+  : m_name(tr("Generic Directory Filter")),
+    m_filters(QStringList() << "*.h" << "*.cpp" << "*.ui" << "*.qrc")
 {
     setIncludedByDefault(true);
 }
diff --git a/src/plugins/quickopen/directoryfilter.h b/src/plugins/quickopen/directoryfilter.h
index abe167d61d332f136dc711e434954d58d5df39a6..f156e01b45f29b7a4425defd3257620e97edf0cf 100644
--- a/src/plugins/quickopen/directoryfilter.h
+++ b/src/plugins/quickopen/directoryfilter.h
@@ -45,9 +45,6 @@
 #include <QtGui/QWidget>
 #include <QtGui/QDialog>
 
-#include <coreplugin/icore.h>
-#include <qtconcurrent/QtConcurrentTools>
-
 namespace QuickOpen {
 namespace Internal {
 
@@ -56,7 +53,7 @@ class DirectoryFilter : public BaseFileFilter
     Q_OBJECT
 
 public:
-    DirectoryFilter(Core::ICore *core);
+    DirectoryFilter();
     QString trName() const { return m_name; }
     QString name() const { return m_name; }
     QuickOpen::IQuickOpenFilter::Priority priority() const { return QuickOpen::IQuickOpenFilter::Medium; }
diff --git a/src/plugins/quickopen/quickopenplugin.cpp b/src/plugins/quickopen/quickopenplugin.cpp
index f0354c0ba6c756cda3031b3af45f29242195575d..3c080cd83840162a7789665d7d3c25228373eacf 100644
--- a/src/plugins/quickopen/quickopenplugin.cpp
+++ b/src/plugins/quickopen/quickopenplugin.cpp
@@ -136,7 +136,6 @@ void QuickOpenPlugin::startSettingsLoad()
 
 void QuickOpenPlugin::loadSettings()
 {
-    Core::ICore *core = Core::ICore::instance();
     QSettings settings;
     settings.beginGroup("QuickOpen");
     m_refreshTimer.setInterval(settings.value("RefreshInterval", 60).toInt()*60000);
@@ -150,7 +149,7 @@ void QuickOpenPlugin::loadSettings()
     settings.beginGroup("CustomFilters");
     QList<IQuickOpenFilter *> customFilters;
     foreach (const QString &key, settings.childKeys()) {
-        IQuickOpenFilter *filter = new DirectoryFilter(core);
+        IQuickOpenFilter *filter = new DirectoryFilter;
         filter->restoreState(settings.value(key).toByteArray());
         m_filters.append(filter);
         customFilters.append(filter);
diff --git a/src/plugins/quickopen/settingspage.cpp b/src/plugins/quickopen/settingspage.cpp
index 174159163427a4b6f79b43dc9fc35f1f8f5616c0..5d1b3a24b59b0b52833ba076a08a6c14f2018ed4 100644
--- a/src/plugins/quickopen/settingspage.cpp
+++ b/src/plugins/quickopen/settingspage.cpp
@@ -173,7 +173,7 @@ void SettingsPage::configureFilter(QListWidgetItem *item)
 
 void SettingsPage::addCustomFilter()
 {
-    IQuickOpenFilter *filter = new DirectoryFilter(m_core);
+    IQuickOpenFilter *filter = new DirectoryFilter;
     bool needsRefresh = false;
     if (filter->openConfigDialog(m_page, needsRefresh)) {
         m_filters.append(filter);
diff --git a/src/plugins/resourceeditor/resourceeditorfactory.cpp b/src/plugins/resourceeditor/resourceeditorfactory.cpp
index 4a623c77f4aaedd0add95dd41b0ebfc6da376672..658a572c3949b5ae867aa35531f8ab3f1290cf53 100644
--- a/src/plugins/resourceeditor/resourceeditorfactory.cpp
+++ b/src/plugins/resourceeditor/resourceeditorfactory.cpp
@@ -47,14 +47,13 @@
 using namespace ResourceEditor::Internal;
 using namespace ResourceEditor::Constants;
 
-ResourceEditorFactory::ResourceEditorFactory(Core::ICore *core, ResourceEditorPlugin *plugin) :
+ResourceEditorFactory::ResourceEditorFactory(ResourceEditorPlugin *plugin) :
     Core::IEditorFactory(plugin),
     m_mimeTypes(QStringList(QLatin1String("application/vnd.nokia.xml.qt.resource"))),
     m_kind(QLatin1String(C_RESOURCEEDITOR)),
-    m_core(core),
     m_plugin(plugin)
 {
-    m_context += m_core->uniqueIDManager()
+    m_context += Core::ICore::instance()->uniqueIDManager()
                  ->uniqueIdentifier(QLatin1String(ResourceEditor::Constants::C_RESOURCEEDITOR));
     Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance();
     iconProvider->registerIconForSuffix(QIcon(":/resourceeditor/images/qt_qrc.png"),
@@ -68,7 +67,7 @@ QString ResourceEditorFactory::kind() const
 
 Core::IFile *ResourceEditorFactory::open(const QString &fileName)
 {
-    Core::IEditor *iface = m_core->editorManager()->openEditor(fileName, kind());
+    Core::IEditor *iface = Core::ICore::instance()->editorManager()->openEditor(fileName, kind());
     if (!iface) {
         qWarning() << "ResourceEditorFactory::open: openEditor failed for " << fileName;
         return 0;
@@ -78,7 +77,7 @@ Core::IFile *ResourceEditorFactory::open(const QString &fileName)
 
 Core::IEditor *ResourceEditorFactory::createEditor(QWidget *parent)
 {
-    return new ResourceEditorW(m_context, m_core, m_plugin, parent);
+    return new ResourceEditorW(m_context, m_plugin, parent);
 }
 
 QStringList ResourceEditorFactory::mimeTypes() const
diff --git a/src/plugins/resourceeditor/resourceeditorfactory.h b/src/plugins/resourceeditor/resourceeditorfactory.h
index 4097fdecaccf83a3e0e6d9fd598ce541cf2be731..0c4ab63c909ce31b1cd5f6901d2835ceae208067 100644
--- a/src/plugins/resourceeditor/resourceeditorfactory.h
+++ b/src/plugins/resourceeditor/resourceeditorfactory.h
@@ -38,10 +38,6 @@
 
 #include <QtCore/QStringList>
 
-namespace Core {
-class ICore;
-} // namespace Core
-
 namespace ResourceEditor {
 namespace Internal {
 
@@ -54,11 +50,11 @@ class ResourceEditorFactory : public Core::IEditorFactory
 public:
     typedef QList<int> Context;
 
-    ResourceEditorFactory(Core::ICore *core, ResourceEditorPlugin *plugin);
+    explicit ResourceEditorFactory(ResourceEditorPlugin *plugin);
 
     virtual QStringList mimeTypes() const;
 
-    //EditorFactory
+    // IEditorFactory
     QString kind() const;
     Core::IFile *open(const QString &fileName);
     Core::IEditor *createEditor(QWidget *parent);
@@ -68,7 +64,6 @@ private:
     const QString m_kind;
     Context m_context;
 
-    Core::ICore *m_core;
     ResourceEditorPlugin *m_plugin;
 };
 
diff --git a/src/plugins/resourceeditor/resourceeditorplugin.cpp b/src/plugins/resourceeditor/resourceeditorplugin.cpp
index a1d612efc2e31da586ead7d8cb1fa5cc90803148..7e5a7dcd1f8b853178080e25dcce868ba130fe3a 100644
--- a/src/plugins/resourceeditor/resourceeditorplugin.cpp
+++ b/src/plugins/resourceeditor/resourceeditorplugin.cpp
@@ -74,7 +74,7 @@ bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *err
     if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":/resourceeditor/ResourceEditor.mimetypes.xml"), errorMessage))
         return false;
 
-    m_editor = new ResourceEditorFactory(core, this);
+    m_editor = new ResourceEditorFactory(this);
     addObject(m_editor);
 
     Core::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
@@ -83,7 +83,7 @@ bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *err
     wizardParameters.setCategory(QLatin1String("Qt"));
     wizardParameters.setTrCategory(tr("Qt"));
 
-    m_wizard = new ResourceWizard(wizardParameters, core, this);
+    m_wizard = new ResourceWizard(wizardParameters, this);
     addObject(m_wizard);
 
     errorMessage->clear();
diff --git a/src/plugins/resourceeditor/resourceeditorw.cpp b/src/plugins/resourceeditor/resourceeditorw.cpp
index db4ed08980501f7de66dbe1ede76de9e6aa3462a..c8e0bbf51072ddad9ddc86028840b47aeb128c4e 100644
--- a/src/plugins/resourceeditor/resourceeditorw.cpp
+++ b/src/plugins/resourceeditor/resourceeditorw.cpp
@@ -70,11 +70,9 @@ QString ResourceEditorFile::mimeType() const
 
 
 ResourceEditorW::ResourceEditorW(const QList<int> &context,
-                               Core::ICore *core,
                                ResourceEditorPlugin *plugin,
                                QWidget *parent)
         : m_context(context),
-        m_core(core),
         m_resourceEditor(new SharedTools::QrcEditor(parent)),
         m_resourceFile(new ResourceEditorFile(this)),
         m_plugin(plugin)
@@ -207,7 +205,7 @@ void ResourceEditorFile::modified(Core::IFile::ReloadBehavior *behavior)
         break;
     }
 
-    switch (Core::Utils::reloadPrompt(fileName, m_parent->m_core->mainWindow())) {
+    switch (Core::Utils::reloadPrompt(fileName, Core::ICore::instance()->mainWindow())) {
     case Core::Utils::ReloadCurrent:
         m_parent->open(fileName);
         break;
diff --git a/src/plugins/resourceeditor/resourceeditorw.h b/src/plugins/resourceeditor/resourceeditorw.h
index 4070e155cd6e936ca96f52a1e5f710482c2bbdea..cc26250458aed18e5b36ab938a8f09c391e5f54c 100644
--- a/src/plugins/resourceeditor/resourceeditorw.h
+++ b/src/plugins/resourceeditor/resourceeditorw.h
@@ -40,11 +40,6 @@
 #include <QtGui/QWidget>
 #include <QtCore/QPointer>
 
-
-namespace  Core {
-    class ICore;
-}
-
 namespace SharedTools {
     class QrcEditor;
 }
@@ -92,7 +87,6 @@ public:
     typedef QList<int> Context;
 
     ResourceEditorW(const Context &context,
-                   Core::ICore *core,
                    ResourceEditorPlugin *plugin,
                    QWidget *parent = 0);
     ~ResourceEditorW();
@@ -126,7 +120,6 @@ private:
     QString m_displayName;
     QString m_suggestedName;
     const Context m_context;
-    Core::ICore *m_core;
     QPointer<SharedTools::QrcEditor> m_resourceEditor;
     ResourceEditorFile *m_resourceFile;
     ResourceEditorPlugin *m_plugin;
diff --git a/src/plugins/resourceeditor/resourcewizard.cpp b/src/plugins/resourceeditor/resourcewizard.cpp
index b2e76ed154a9cce9f15dd6ad2396cae548bedcb8..e4657fb0a95d721352ede88976eb83322b59ed2b 100644
--- a/src/plugins/resourceeditor/resourcewizard.cpp
+++ b/src/plugins/resourceeditor/resourcewizard.cpp
@@ -38,16 +38,17 @@
 using namespace ResourceEditor;
 using namespace ResourceEditor::Internal;
 
-ResourceWizard::ResourceWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent) :
-    Core::StandardFileWizard(parameters, core, parent)
+ResourceWizard::ResourceWizard(const BaseFileWizardParameters &parameters, QObject *parent)
+  : Core::StandardFileWizard(parameters, parent)
 {
 }
 
 Core::GeneratedFiles
 ResourceWizard::generateFilesFromPath(const QString &path,
                                       const QString &name,
-                                      QString * /*errorMessage*/) const
+                                      QString *errorMessage) const
 {
+    Q_UNUSED(errorMessage);
     const QString suffix = preferredSuffix(QLatin1String(Constants::C_RESOURCE_MIMETYPE));
     const QString fileName = Core::BaseFileWizard::buildFileName(path, name, suffix);
     Core::GeneratedFile file(fileName);
diff --git a/src/plugins/resourceeditor/resourcewizard.h b/src/plugins/resourceeditor/resourcewizard.h
index e435755b2fc9b2cff629cbcd08f2850146cba0cb..829c6eae9a9bab909cf179a68da897454439dd31 100644
--- a/src/plugins/resourceeditor/resourcewizard.h
+++ b/src/plugins/resourceeditor/resourcewizard.h
@@ -45,7 +45,7 @@ class ResourceWizard : public Core::StandardFileWizard
 
 public:
     typedef Core::BaseFileWizardParameters BaseFileWizardParameters;
-    explicit ResourceWizard(const BaseFileWizardParameters &parameters, Core::ICore *core, QObject *parent);
+    explicit ResourceWizard(const BaseFileWizardParameters &parameters, QObject *parent);
 
 protected:
     virtual Core::GeneratedFiles
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index 23f4986bc31032870f8befcf079574e174b4572a..5a3d567f1ec1f456369e668809524d220428b0f7 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -284,7 +284,8 @@ bool SubversionPlugin::initialize(const QStringList &arguments, QString *errorMe
     static const char *describeSlot = SLOT(describe(QString,QString));
     const int editorCount = sizeof(editorParameters)/sizeof(VCSBase::VCSBaseEditorParameters);
     for (int i = 0; i < editorCount; i++) {
-        m_editorFactories.push_back(new SubversionEditorFactory(editorParameters + i, m_coreInstance, this, describeSlot));
+        m_editorFactories.push_back(
+            new SubversionEditorFactory(editorParameters + i, this, describeSlot));
         addObject(m_editorFactories.back());
     }
 
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp
index 61fc6eadc175cc73affbc380af0277bdc7518c88..e574140d3d8eff399c7c81f1dd513b61b0985880 100644
--- a/src/plugins/texteditor/basefilefind.cpp
+++ b/src/plugins/texteditor/basefilefind.cpp
@@ -49,9 +49,8 @@ using namespace Core::Utils;
 using namespace Find;
 using namespace TextEditor;
 
-BaseFileFind::BaseFileFind(Core::ICore *core, SearchResultWindow *resultWindow)
-    : m_core(core),
-    m_resultWindow(resultWindow),
+BaseFileFind::BaseFileFind(SearchResultWindow *resultWindow)
+  : m_resultWindow(resultWindow),
     m_isSearching(false),
     m_resultLabel(0),
     m_filterCombo(0),
@@ -95,7 +94,8 @@ void BaseFileFind::findAll(const QString &txt, QTextDocument::FindFlags findFlag
         m_watcher.setFuture(Core::Utils::findInFilesRegExp(txt, files(), findFlags));
     else
         m_watcher.setFuture(Core::Utils::findInFiles(txt, files(), findFlags));
-    Core::FutureProgress *progress = m_core->progressManager()->addTask(m_watcher.future(),
+    Core::FutureProgress *progress = 
+        Core::ICore::instance()->progressManager()->addTask(m_watcher.future(),
                                                                         "Search",
                                                                         Constants::TASK_SEARCH);
     progress->setWidget(createProgressWidget());
diff --git a/src/plugins/texteditor/basefilefind.h b/src/plugins/texteditor/basefilefind.h
index 2aacf2d9650ee172d0ed0e83edbe31c30d9baff2..706964cf50ab7367617b9643e004a26e5ee4ef9f 100644
--- a/src/plugins/texteditor/basefilefind.h
+++ b/src/plugins/texteditor/basefilefind.h
@@ -36,7 +36,6 @@
 
 #include "texteditor_global.h"
 
-#include <coreplugin/icore.h>
 #include <find/ifindfilter.h>
 #include <find/searchresultwindow.h>
 #include <utils/filesearch.h>
@@ -55,7 +54,7 @@ class TEXTEDITOR_EXPORT BaseFileFind : public Find::IFindFilter
     Q_OBJECT
 
 public:
-    BaseFileFind(Core::ICore *core, Find::SearchResultWindow *resultWindow);
+    explicit BaseFileFind(Find::SearchResultWindow *resultWindow);
 
     bool isEnabled() const;
     void findAll(const QString &txt, QTextDocument::FindFlags findFlags);
@@ -79,7 +78,6 @@ private slots:
 private:
     QWidget *createProgressWidget();
 
-    Core::ICore *m_core;
     Find::SearchResultWindow *m_resultWindow;
     QFutureWatcher<Core::Utils::FileSearchResult> m_watcher;
     bool m_isSearching;
diff --git a/src/plugins/texteditor/findinfiles.cpp b/src/plugins/texteditor/findinfiles.cpp
index c8c1020563e1212b19bc6c9f82fc097317d66da5..b474fdd5eac1b7f15d783f5a7298e0e52037b754 100644
--- a/src/plugins/texteditor/findinfiles.cpp
+++ b/src/plugins/texteditor/findinfiles.cpp
@@ -42,8 +42,8 @@
 using namespace Find;
 using namespace TextEditor::Internal;
 
-FindInFiles::FindInFiles(Core::ICore *core, SearchResultWindow *resultWindow)
-    : BaseFileFind(core, resultWindow),
+FindInFiles::FindInFiles(SearchResultWindow *resultWindow)
+  : BaseFileFind(resultWindow),
     m_configWidget(0),
     m_directory(0)
 {
diff --git a/src/plugins/texteditor/findinfiles.h b/src/plugins/texteditor/findinfiles.h
index e38c838f87dc5264bf600261e1b3150f4ed3fa33..e894f7eece76841aeed2baed3725074f8bbcc4fb 100644
--- a/src/plugins/texteditor/findinfiles.h
+++ b/src/plugins/texteditor/findinfiles.h
@@ -36,7 +36,6 @@
 
 #include "basefilefind.h"
 
-#include <coreplugin/icore.h>
 #include <find/ifindfilter.h>
 #include <find/searchresultwindow.h>
 
@@ -54,12 +53,10 @@ class FindInFiles : public BaseFileFind
     Q_OBJECT
 
 public:
-    FindInFiles(Core::ICore *core, Find::SearchResultWindow *resultWindow);
+    explicit FindInFiles(Find::SearchResultWindow *resultWindow);
 
     QString name() const;
-
     QKeySequence defaultShortcut() const;
-
     void findAll(const QString &txt, QTextDocument::FindFlags findFlags);
     QWidget *createConfigWidget();
     void writeSettings(QSettings *settings);
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index 1eaccaba6e26689b16f82eb4c9a0f9a946a6b525..5d493cef404c5a828a8e89ce4607ee85e78fca7f 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -36,20 +36,21 @@
 #include "texteditorconstants.h"
 #include "ui_fontsettingspage.h"
 
+#include <coreplugin/icore.h>
 #include <utils/settingsutils.h>
 
 #include <QtCore/QSettings>
 #include <QtCore/QTimer>
-#include <QtGui/QListWidget>
-#include <QtGui/QToolButton>
-#include <QtGui/QPalette>
 #include <QtGui/QCheckBox>
 #include <QtGui/QColorDialog>
-#include <QtGui/QTextEdit>
-#include <QtGui/QTextCharFormat>
 #include <QtGui/QComboBox>
 #include <QtGui/QFontDatabase>
+#include <QtGui/QListWidget>
 #include <QtGui/QPalette>
+#include <QtGui/QPalette>
+#include <QtGui/QTextCharFormat>
+#include <QtGui/QTextEdit>
+#include <QtGui/QToolButton>
 
 static inline QString colorButtonStyleSheet(const QColor &bgColor)
 {
@@ -70,10 +71,9 @@ public:
     FontSettingsPagePrivate(const TextEditor::FormatDescriptions &fd,
                             const QString &name,
                             const QString &category,
-                            const QString &trCategory,
-                            Core::ICore *core);
+                            const QString &trCategory);
 
-    Core::ICore *m_core;
+public:
     const QString m_name;
     const QString m_settingsGroup;
     const QString m_category;
@@ -89,9 +89,7 @@ public:
 FontSettingsPagePrivate::FontSettingsPagePrivate(const TextEditor::FormatDescriptions &fd,
                                                  const QString &name,
                                                  const QString &category,
-                                                 const QString &trCategory,
-                                                 Core::ICore *core) :
-    m_core(core),
+                                                 const QString &trCategory) :
     m_name(name),
     m_settingsGroup(Core::Utils::settingsKey(category)),
     m_category(category),
@@ -102,9 +100,8 @@ FontSettingsPagePrivate::FontSettingsPagePrivate(const TextEditor::FormatDescrip
     m_curItem(-1)
 {
     bool settingsFound = false;
-    if (m_core)
-        if (const QSettings *settings = m_core->settings())
-            settingsFound = m_value.fromSettings(m_settingsGroup, m_descriptions, settings);
+    if (const QSettings *settings = Core::ICore::instance()->settings())
+        settingsFound = m_value.fromSettings(m_settingsGroup, m_descriptions, settings);
     if (!settingsFound) { // Apply defaults
         foreach (const FormatDescription &f, m_descriptions) {
             const QString name = f.name();
@@ -200,10 +197,9 @@ QColor FormatDescription::background() const
 FontSettingsPage::FontSettingsPage(const FormatDescriptions &fd,
                                    const QString &category,
                                    const QString &trCategory,
-                                   Core::ICore *core,
                                    QObject *parent) :
     Core::IOptionsPage(parent),
-    d_ptr(new FontSettingsPagePrivate(fd, tr("Font & Colors"), category, trCategory, core))
+    d_ptr(new FontSettingsPagePrivate(fd, tr("Font & Colors"), category, trCategory))
 {
 }
 
@@ -232,7 +228,6 @@ QWidget *FontSettingsPage::createPage(QWidget *parent)
     QWidget *w = new QWidget(parent);
     d_ptr->ui.setupUi(w);
 
-
     d_ptr->ui.itemListWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
 
     foreach (const FormatDescription &d, d_ptr->m_descriptions)
@@ -447,9 +442,8 @@ void FontSettingsPage::apply()
 
     if (d_ptr->m_value != d_ptr->m_lastValue) {
         d_ptr->m_lastValue = d_ptr->m_value;
-        if (d_ptr->m_core)
-            if (QSettings *settings = d_ptr->m_core->settings())
-                d_ptr->m_value.toSettings(d_ptr->m_settingsGroup, d_ptr->m_descriptions, settings);
+        if (QSettings *settings = Core::ICore::instance()->settings())
+            d_ptr->m_value.toSettings(d_ptr->m_settingsGroup, d_ptr->m_descriptions, settings);
 
         QTimer::singleShot(0, this, SLOT(delayedChange()));
     }
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index 6a518f518d361757d2eff3502c042bcba7f382b3..bc674de3c2028bb50badbfefb0948d333472cea3 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -38,7 +38,6 @@
 
 #include "fontsettings.h"
 
-#include <coreplugin/icore.h>
 #include <coreplugin/dialogs/ioptionspage.h>
 
 #include <QtGui/QColor>
@@ -89,7 +88,6 @@ public:
     FontSettingsPage(const FormatDescriptions &fd,
                      const QString &category,
                      const QString &trCategory,
-                     Core::ICore *core,
                      QObject *parent = 0);
 
     ~FontSettingsPage();
diff --git a/src/plugins/texteditor/generalsettingspage.cpp b/src/plugins/texteditor/generalsettingspage.cpp
index d20763b0cab82ff5f2a0b6c9983a5b592dcab548..7be7bca1f4b3fc5e3c272a3509f419dbb55aeeea 100644
--- a/src/plugins/texteditor/generalsettingspage.cpp
+++ b/src/plugins/texteditor/generalsettingspage.cpp
@@ -37,16 +37,17 @@
 #include "tabsettings.h"
 #include "ui_generalsettingspage.h"
 
+#include <coreplugin/icore.h>
+
 #include <QtCore/QSettings>
 #include <QtCore/QDebug>
 
 using namespace TextEditor;
 
-struct GeneralSettingsPage::GeneralSettingsPagePrivate {
-    GeneralSettingsPagePrivate(Core::ICore *core,
-                           const GeneralSettingsPageParameters &p);
+struct GeneralSettingsPage::GeneralSettingsPagePrivate
+{
+    explicit GeneralSettingsPagePrivate(const GeneralSettingsPageParameters &p);
 
-    Core::ICore *m_core;
     const GeneralSettingsPageParameters m_parameters;
     Ui::generalSettingsPage m_page;
     TabSettings m_tabSettings;
@@ -54,24 +55,21 @@ struct GeneralSettingsPage::GeneralSettingsPagePrivate {
     DisplaySettings m_displaySettings;
 };
 
-GeneralSettingsPage::GeneralSettingsPagePrivate::GeneralSettingsPagePrivate(Core::ICore *core,
-                                                                const GeneralSettingsPageParameters &p) :
-   m_core(core),
-   m_parameters(p)
+GeneralSettingsPage::GeneralSettingsPagePrivate::GeneralSettingsPagePrivate
+    (const GeneralSettingsPageParameters &p)
+  : m_parameters(p)
 {
-    if (m_core)
-        if (const QSettings *s = m_core->settings()) {
-            m_tabSettings.fromSettings(m_parameters.settingsPrefix, s);
-            m_storageSettings.fromSettings(m_parameters.settingsPrefix, s);
-            m_displaySettings.fromSettings(m_parameters.settingsPrefix, s);
-        }
+    if (const QSettings *s = Core::ICore::instance()->settings()) {
+        m_tabSettings.fromSettings(m_parameters.settingsPrefix, s);
+        m_storageSettings.fromSettings(m_parameters.settingsPrefix, s);
+        m_displaySettings.fromSettings(m_parameters.settingsPrefix, s);
+    }
 }
 
-GeneralSettingsPage::GeneralSettingsPage(Core::ICore *core,
-                                 const GeneralSettingsPageParameters &p,
-                                 QObject *parent) :
-    Core::IOptionsPage(parent),
-    m_d(new GeneralSettingsPagePrivate(core, p))
+GeneralSettingsPage::GeneralSettingsPage(const GeneralSettingsPageParameters &p,
+                                 QObject *parent)
+  : Core::IOptionsPage(parent),
+    m_d(new GeneralSettingsPagePrivate(p))
 {
 }
 
@@ -99,9 +97,7 @@ QWidget *GeneralSettingsPage::createPage(QWidget *parent)
 {
     QWidget *w = new QWidget(parent);
     m_d->m_page.setupUi(w);
-
     settingsToUI();
-
     return w;
 }
 
@@ -112,30 +108,28 @@ void GeneralSettingsPage::apply()
     DisplaySettings newDisplaySettings;
 
     settingsFromUI(newTabSettings, newStorageSettings, newDisplaySettings);
+    Core::ICore *core = Core::ICore::instance();
 
     if (newTabSettings != m_d->m_tabSettings) {
         m_d->m_tabSettings = newTabSettings;
-        if (m_d->m_core)
-            if (QSettings *s = m_d->m_core->settings())
-                m_d->m_tabSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+        if (QSettings *s = core->settings())
+            m_d->m_tabSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
 
         emit tabSettingsChanged(newTabSettings);
     }
 
     if (newStorageSettings != m_d->m_storageSettings) {
         m_d->m_storageSettings = newStorageSettings;
-        if (m_d->m_core)
-            if (QSettings *s = m_d->m_core->settings())
-                m_d->m_storageSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+        if (QSettings *s = core->settings())
+            m_d->m_storageSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
 
         emit storageSettingsChanged(newStorageSettings);
     }
 
     if (newDisplaySettings != m_d->m_displaySettings) {
         m_d->m_displaySettings = newDisplaySettings;
-        if (m_d->m_core)
-            if (QSettings *s = m_d->m_core->settings())
-                m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+        if (QSettings *s = core->settings())
+            m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
 
         emit displaySettingsChanged(newDisplaySettings);
     }
@@ -207,9 +201,9 @@ void GeneralSettingsPage::setDisplaySettings(const DisplaySettings &newDisplaySe
 {
     if (newDisplaySettings != m_d->m_displaySettings) {
         m_d->m_displaySettings = newDisplaySettings;
-        if (m_d->m_core)
-            if (QSettings *s = m_d->m_core->settings())
-                m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+        Core::ICore *core = Core::ICore::instance();
+        if (QSettings *s = core->settings())
+            m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
 
         emit displaySettingsChanged(newDisplaySettings);
     }
diff --git a/src/plugins/texteditor/generalsettingspage.h b/src/plugins/texteditor/generalsettingspage.h
index eea75e2ccc8a72ada08b7881ccd666656c45aa91..5eb9c0811c23b9f761e2b3a8e1f37c11486646e1 100644
--- a/src/plugins/texteditor/generalsettingspage.h
+++ b/src/plugins/texteditor/generalsettingspage.h
@@ -36,7 +36,6 @@
 
 #include "texteditor_global.h"
 
-#include <coreplugin/icore.h>
 #include <coreplugin/dialogs/ioptionspage.h>
 
 #include <QtCore/QObject>
@@ -47,26 +46,23 @@ struct TabSettings;
 struct StorageSettings;
 struct DisplaySettings;
 
-struct TEXTEDITOR_EXPORT GeneralSettingsPageParameters {
+struct TEXTEDITOR_EXPORT GeneralSettingsPageParameters
+{
     QString name;
     QString category;
     QString trCategory;
     QString settingsPrefix;
 };
 
-class Ui_generalSettingsPage;
-
 class TEXTEDITOR_EXPORT GeneralSettingsPage : public Core::IOptionsPage
 {
     Q_OBJECT
 
 public:
-    GeneralSettingsPage(Core::ICore *core,
-                        const GeneralSettingsPageParameters &p,
-                        QObject *parent);
+    GeneralSettingsPage(const GeneralSettingsPageParameters &p, QObject *parent);
     virtual ~GeneralSettingsPage();
 
-    //IOptionsPage
+    // IOptionsPage
     QString name() const;
     QString category() const;
     QString trCategory() const;
diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp
index b9370bca9cf46089f343d9deb5948816fb772245..4a76df107660f35269e9c084f07ace2e01add38c 100644
--- a/src/plugins/texteditor/plaintexteditor.cpp
+++ b/src/plugins/texteditor/plaintexteditor.cpp
@@ -45,7 +45,7 @@ using namespace TextEditor::Internal;
 PlainTextEditorEditable::PlainTextEditorEditable(PlainTextEditor *editor)
     :BaseTextEditorEditable(editor)
 {
-    Core::ICore *core = TextEditorPlugin::core();
+    Core::ICore *core = Core::ICore::instance();
     m_context << core->uniqueIDManager()->
         uniqueIdentifier(Core::Constants::K_DEFAULT_TEXT_EDITOR);
     m_context << core->uniqueIDManager()->
@@ -55,7 +55,6 @@ PlainTextEditorEditable::PlainTextEditorEditable(PlainTextEditor *editor)
 PlainTextEditor::PlainTextEditor(QWidget *parent) :
     BaseTextEditor(parent)
 {
-
     setRevisionsVisible(true);
     setMarksVisible(true);
     setRequestMarkEnabled(false);
@@ -69,7 +68,6 @@ QList<int> PlainTextEditorEditable::context() const
     return m_context;
 }
 
-
 Core::IEditor *PlainTextEditorEditable::duplicate(QWidget *parent)
 {
     PlainTextEditor *newEditor = new PlainTextEditor(parent);
@@ -103,8 +101,10 @@ const char *PlainTextEditorEditable::kind() const
 // to do in 2 steps (indenting/wrapping)}
 //
 
-void PlainTextEditor::indentBlock(QTextDocument *doc, QTextBlock block, QChar /* typedChar */)
+void PlainTextEditor::indentBlock(QTextDocument *doc, QTextBlock block, QChar typedChar)
 {
+    Q_UNUSED(typedChar);
+
     // At beginning: Leave as is.
     if (block == doc->begin())
         return;
diff --git a/src/plugins/texteditor/plaintexteditorfactory.cpp b/src/plugins/texteditor/plaintexteditorfactory.cpp
index 92a3a79ea4f8d697cddac7d0c9ec401ca25cc788..7c63855ec7a74c4880e176f6f58fa8c9e4ea1089 100644
--- a/src/plugins/texteditor/plaintexteditorfactory.cpp
+++ b/src/plugins/texteditor/plaintexteditorfactory.cpp
@@ -37,19 +37,20 @@
 #include "texteditorplugin.h"
 #include "texteditoractionhandler.h"
 
+#include <coreplugin/icore.h>
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/editormanager/editormanager.h>
 
 using namespace TextEditor;
 using namespace TextEditor::Internal;
 
-PlainTextEditorFactory::PlainTextEditorFactory(QObject *parent)   :
-    Core::IEditorFactory(parent),
+PlainTextEditorFactory::PlainTextEditorFactory(QObject *parent)
+  : Core::IEditorFactory(parent),
     m_kind(Core::Constants::K_DEFAULT_TEXT_EDITOR)
 {
-    m_actionHandler = new TextEditorActionHandler(TextEditorPlugin::core(),
-                                                  QLatin1String(TextEditor::Constants::C_TEXTEDITOR),
-                                                  TextEditorActionHandler::Format);
+    m_actionHandler = new TextEditorActionHandler(
+        QLatin1String(TextEditor::Constants::C_TEXTEDITOR),
+        TextEditorActionHandler::Format);
     m_mimeTypes << QLatin1String(TextEditor::Constants::C_TEXTEDITOR_MIMETYPE_TEXT)
                 << QLatin1String(TextEditor::Constants::C_TEXTEDITOR_MIMETYPE_XML);
 }
@@ -66,14 +67,14 @@ QString PlainTextEditorFactory::kind() const
 
 Core::IFile *PlainTextEditorFactory::open(const QString &fileName)
 {
-    Core::ICore *core = TextEditorPlugin::core();
+    Core::ICore *core = Core::ICore::instance();
     Core::IEditor *iface = core->editorManager()->openEditor(fileName, kind());
     return iface ? iface->file() : 0;
 }
 
 Core::IEditor *PlainTextEditorFactory::createEditor(QWidget *parent)
 {
-    PlainTextEditor *rc =  new PlainTextEditor(parent);
+    PlainTextEditor *rc = new PlainTextEditor(parent);
     TextEditorPlugin::instance()->initializeEditor(rc);
     return rc->editableInterface();
 }
diff --git a/src/plugins/texteditor/texteditoractionhandler.cpp b/src/plugins/texteditor/texteditoractionhandler.cpp
index e15cbfd0096b3157ea57f1e402fcc59adc00aaa0..511e1d919e7dfa130c7a21130405ec86821ae5ff 100644
--- a/src/plugins/texteditor/texteditoractionhandler.cpp
+++ b/src/plugins/texteditor/texteditoractionhandler.cpp
@@ -38,6 +38,7 @@
 #include "linenumberfilter.h"
 
 #include <quickopen/quickopenmanager.h>
+#include <coreplugin/icore.h>
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/uniqueidmanager.h>
 #include <coreplugin/actionmanager/actionmanager.h>
@@ -52,31 +53,45 @@
 using namespace TextEditor;
 using namespace TextEditor::Internal;
 
-TextEditorActionHandler::TextEditorActionHandler(Core::ICore *core,
-                                                 const QString &context,
-                                                 uint optionalActions)  :
-    QObject(core),
+TextEditorActionHandler::TextEditorActionHandler(const QString &context,
+                                                 uint optionalActions) 
+  : QObject(Core::ICore::instance()),
     m_optionalActions(optionalActions),
     m_currentEditor(0),
-    m_core(core),
     m_initialized(false)
 {
-    m_undoAction = m_redoAction = m_copyAction = m_cutAction = m_pasteAction
-                 = m_selectAllAction = m_gotoAction = m_printAction = m_formatAction
-                 = m_visualizeWhitespaceAction = m_cleanWhitespaceAction = m_textWrappingAction
-                 = m_unCommentSelectionAction = m_unCollapseAllAction
-                 = m_collapseAction = m_expandAction
-                 = m_deleteLineAction = m_selectEncodingAction
-                 = m_increaseFontSizeAction = m_decreaseFontSizeAction
-                 = m_gotoBlockStartAction = m_gotoBlockStartWithSelectionAction
-                 = m_gotoBlockEndAction = m_gotoBlockEndWithSelectionAction
-                 = m_selectBlockUpAction = m_selectBlockDownAction
-                 = m_moveLineUpAction = m_moveLineDownAction
-                 = 0;
-
-    m_contextId << m_core->uniqueIDManager()->uniqueIdentifier(context);
-
-    connect(m_core, SIGNAL(contextAboutToChange(Core::IContext *)),
+    m_undoAction = 0;
+    m_redoAction = 0;
+    m_copyAction = 0;
+    m_cutAction = 0;
+    m_pasteAction = 0;
+    m_selectAllAction = 0;
+    m_gotoAction = 0;
+    m_printAction = 0;
+    m_formatAction = 0;
+    m_visualizeWhitespaceAction = 0;
+    m_cleanWhitespaceAction = 0;
+    m_textWrappingAction = 0;
+    m_unCommentSelectionAction = 0;
+    m_unCollapseAllAction = 0;
+    m_collapseAction = 0;
+    m_expandAction = 0;
+    m_deleteLineAction = 0;
+    m_selectEncodingAction = 0;
+    m_increaseFontSizeAction = 0;
+    m_decreaseFontSizeAction = 0;
+    m_gotoBlockStartAction = 0;
+    m_gotoBlockStartWithSelectionAction = 0;
+    m_gotoBlockEndAction = 0;
+    m_gotoBlockEndWithSelectionAction = 0;
+    m_selectBlockUpAction = 0;
+    m_selectBlockDownAction = 0;
+    m_moveLineUpAction = 0;
+    m_moveLineDownAction = 0;
+
+    m_contextId << Core::ICore::instance()->uniqueIDManager()->uniqueIdentifier(context);
+
+    connect(Core::ICore::instance(), SIGNAL(contextAboutToChange(Core::IContext *)),
         this, SLOT(updateCurrentEditor(Core::IContext *)));
 }
 
@@ -111,7 +126,7 @@ void TextEditorActionHandler::createActions()
     m_gotoAction      = registerNewAction(QLatin1String(Core::Constants::GOTO),      this, SLOT(gotoAction()));
     m_printAction     = registerNewAction(QLatin1String(Core::Constants::PRINT),     this, SLOT(printAction()));
 
-    Core::ActionManager *am = m_core->actionManager();
+    Core::ActionManager *am = Core::ICore::instance()->actionManager();
 
     Core::ActionContainer *medit = am->actionContainer(Core::Constants::M_EDIT);
     Core::ActionContainer *advancedMenu = am->actionContainer(Core::Constants::M_EDIT_ADVANCED);
@@ -248,7 +263,7 @@ QAction *TextEditorActionHandler::registerNewAction(const QString &id, const QSt
         return 0;
 
     QAction *result = new QAction(title, this);
-    m_core->actionManager()->registerAction(result, id, m_contextId);
+    Core::ICore::instance()->actionManager()->registerAction(result, id, m_contextId);
     return result;
 }
 
@@ -349,7 +364,7 @@ void TextEditorActionHandler::gotoAction()
 void TextEditorActionHandler::printAction()
 {
     if (m_currentEditor)
-        m_currentEditor->print(m_core->printer());
+        m_currentEditor->print(Core::ICore::instance()->printer());
 }
 
 void TextEditorActionHandler::setVisualizeWhitespace(bool checked)
@@ -445,9 +460,3 @@ const QPointer<BaseTextEditor> &TextEditorActionHandler::currentEditor() const
 {
     return m_currentEditor;
 }
-
-Core::ICore *TextEditorActionHandler::core() const
-{
-    return m_core;
-}
-
diff --git a/src/plugins/texteditor/texteditoractionhandler.h b/src/plugins/texteditor/texteditoractionhandler.h
index ea30cad741337c1bf5bb74c6d3577b4a1d2494f1..172617e9a27e7b7fc55869b9a0f87262a05e62f4 100644
--- a/src/plugins/texteditor/texteditoractionhandler.h
+++ b/src/plugins/texteditor/texteditoractionhandler.h
@@ -38,11 +38,10 @@
 #include "basetexteditor.h"
 
 #include "coreplugin/icontext.h"
-#include "coreplugin/icore.h"
 
+#include <QtCore/QList>
 #include <QtCore/QObject>
 #include <QtCore/QPointer>
-#include <QtCore/QList>
 
 namespace TextEditor {
 
@@ -62,9 +61,7 @@ public:
         UnCollapseAll = 4
     };
 
-    TextEditorActionHandler(Core::ICore *core,
-                            const QString &context,
-                            uint optionalActions = None);
+    TextEditorActionHandler(const QString &context, uint optionalActions = None);
     void setupActions(BaseTextEditor *editor);
 
     void initializeActions();
@@ -80,7 +77,6 @@ protected:
     QAction *registerNewAction(const QString &id, const QString &title = QString());
     QAction *registerNewAction(const QString &id, QObject *receiver, const char *slot,
                                const QString &title = QString());
-    Core::ICore *core() const;
 
     enum UpdateMode { NoEditor , ReadOnlyMode, WriteMode };
     UpdateMode updateMode() const;
@@ -152,7 +148,6 @@ private:
 
     uint m_optionalActions;
     QPointer<BaseTextEditor> m_currentEditor;
-    Core::ICore *m_core;
     QList<int> m_contextId;
     bool m_initialized;
 };
diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp
index c36d985a18ba2209accc2466cc5654723986e5e4..23b96a5321762269ecc7edfae935b60d987098a7 100644
--- a/src/plugins/texteditor/texteditorplugin.cpp
+++ b/src/plugins/texteditor/texteditorplugin.cpp
@@ -62,9 +62,8 @@ using namespace TextEditor::Internal;
 
 TextEditorPlugin *TextEditorPlugin::m_instance = 0;
 
-TextEditorPlugin::TextEditorPlugin() :
-    m_core(0),
-    m_settings(0),
+TextEditorPlugin::TextEditorPlugin()
+  : m_settings(0),
     m_wizard(0),
     m_editorFactory(0),
     m_lineNumberFilter(0)
@@ -83,19 +82,12 @@ TextEditorPlugin *TextEditorPlugin::instance()
     return m_instance;
 }
 
-Core::ICore *TextEditorPlugin::core()
-{
-    return m_instance->m_core;
-}
-
 // ExtensionSystem::PluginInterface
 bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMessage)
 {
     Q_UNUSED(arguments);
 
-    m_core = Core::ICore::instance();
-
-    if (!m_core->mimeDatabase()->addMimeTypes(QLatin1String(":/texteditor/TextEditor.mimetypes.xml"), errorMessage))
+    if (!Core::ICore::instance()->mimeDatabase()->addMimeTypes(QLatin1String(":/texteditor/TextEditor.mimetypes.xml"), errorMessage))
         return false;
 
     Core::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
@@ -106,7 +98,7 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe
     m_wizard = new TextFileWizard(QLatin1String(TextEditor::Constants::C_TEXTEDITOR_MIMETYPE_TEXT),
                                   QLatin1String(Core::Constants::K_DEFAULT_TEXT_EDITOR),
                                   QLatin1String("text$"),
-                                  wizardParameters, m_core);
+                                  wizardParameters);
     // Add text file wizard
     addAutoReleasedObject(m_wizard);
 
@@ -118,15 +110,16 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe
     addAutoReleasedObject(m_editorFactory);
 
     // Goto line functionality for quick open
-    m_lineNumberFilter = new LineNumberFilter(m_core->editorManager());
+    Core::ICore *core = Core::ICore::instance();
+    m_lineNumberFilter = new LineNumberFilter(core->editorManager());
     addAutoReleasedObject(m_lineNumberFilter);
 
-    int contextId = m_core->uniqueIDManager()->uniqueIdentifier(TextEditor::Constants::C_TEXTEDITOR);
+    int contextId = core->uniqueIDManager()->uniqueIdentifier(TextEditor::Constants::C_TEXTEDITOR);
     QList<int> context = QList<int>() << contextId;
-    Core::ActionManager *am = m_core->actionManager();
+    Core::ActionManager *am = core->actionManager();
 
     // Add shortcut for invoking automatic completion
-    QShortcut *completionShortcut = new QShortcut(m_core->mainWindow());
+    QShortcut *completionShortcut = new QShortcut(core->mainWindow());
     completionShortcut->setWhatsThis(tr("Triggers a completion in this scope"));
     // Make sure the shortcut still works when the completion widget is active
     completionShortcut->setContext(Qt::ApplicationShortcut);
@@ -138,7 +131,8 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe
 #endif
     connect(completionShortcut, SIGNAL(activated()), this, SLOT(invokeCompletion()));
 
-    addAutoReleasedObject(new FindInFiles(m_core, m_core->pluginManager()->getObject<Find::SearchResultWindow>()));
+    addAutoReleasedObject(new FindInFiles(
+        ExtensionSystem::PluginManager::instance()->getObject<Find::SearchResultWindow>()));
 
     return true;
 }
@@ -172,7 +166,7 @@ void TextEditorPlugin::initializeEditor(TextEditor::PlainTextEditor *editor)
 
 void TextEditorPlugin::invokeCompletion()
 {
-    Core::IEditor *iface = m_core->editorManager()->currentEditor();
+    Core::IEditor *iface = Core::ICore::instance()->editorManager()->currentEditor();
     ITextEditor *editor = qobject_cast<ITextEditor *>(iface);
     if (editor)
         editor->triggerCompletions();
diff --git a/src/plugins/texteditor/texteditorplugin.h b/src/plugins/texteditor/texteditorplugin.h
index 65c7c3e48e83fb28197af9c289de0bf74e991fb6..1f0029a71aa09600e65f1fbb273074d433ed6198 100644
--- a/src/plugins/texteditor/texteditorplugin.h
+++ b/src/plugins/texteditor/texteditorplugin.h
@@ -36,22 +36,13 @@
 
 #include <extensionsystem/iplugin.h>
 
-QT_BEGIN_NAMESPACE
-class QAction;
-QT_END_NAMESPACE
-
-namespace Core {
-class ICore;
-class IEditor;
-}
-
 namespace TextEditor {
 
 class FontSettings;
 class FontSettingsPage;
+class PlainTextEditor;
 class TextEditorSettings;
 class TextFileWizard;
-class PlainTextEditor;
 
 namespace Internal {
 
@@ -67,10 +58,9 @@ public:
     virtual ~TextEditorPlugin();
 
     static TextEditorPlugin *instance();
-    static Core::ICore *core();
 
     // ExtensionSystem::PluginInterface
-    bool initialize(const QStringList &arguments, QString *);
+    bool initialize(const QStringList &arguments, QString *errorMessage);
     void extensionsInitialized();
 
     void initializeEditor(PlainTextEditor *editor);
@@ -82,7 +72,6 @@ private slots:
 
 private:
     static TextEditorPlugin *m_instance;
-    Core::ICore *m_core;
     TextEditorSettings *m_settings;
     TextFileWizard *m_wizard;
     PlainTextEditorFactory *m_editorFactory;
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index 6718f20ad6c8214670ed8f965096a73c025f6802..ea61d57172527e1bcb346cdd5276b17630b3bbd5 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -94,8 +94,7 @@ TextEditorSettings::TextEditorSettings(Internal::TextEditorPlugin *plugin,
 
     m_fontSettingsPage = new FontSettingsPage(formatDescriptions,
                                               QLatin1String("TextEditor"),
-                                              tr("Text Editor"),
-                                              plugin->core());
+                                              tr("Text Editor"));
     pm->addObject(m_fontSettingsPage);
 
     // Add the GUI used to configure the tab, storage and display settings
@@ -104,7 +103,7 @@ TextEditorSettings::TextEditorSettings(Internal::TextEditorPlugin *plugin,
     generalSettingsPageParameters.category = QLatin1String("TextEditor");
     generalSettingsPageParameters.trCategory = tr("Text Editor");
     generalSettingsPageParameters.settingsPrefix = QLatin1String("text");
-    m_generalSettingsPage = new GeneralSettingsPage(plugin->core(), generalSettingsPageParameters, this);
+    m_generalSettingsPage = new GeneralSettingsPage(generalSettingsPageParameters, this);
     pm->addObject(m_generalSettingsPage);
 
     connect(m_fontSettingsPage, SIGNAL(changed(TextEditor::FontSettings)),
diff --git a/src/plugins/texteditor/textfilewizard.cpp b/src/plugins/texteditor/textfilewizard.cpp
index e755233735df41d296a58fb50b4a3afa553f402e..05a3b843a4d454d448d1d7b63af0e1cc73aa0322 100644
--- a/src/plugins/texteditor/textfilewizard.cpp
+++ b/src/plugins/texteditor/textfilewizard.cpp
@@ -41,9 +41,8 @@ TextFileWizard::TextFileWizard(const QString &mimeType,
                                const QString &editorKind,
                                const QString &suggestedFileName,
                                const BaseFileWizardParameters &parameters,
-                               Core::ICore *core,
                                QObject *parent) :
-    Core::StandardFileWizard(parameters, core, parent),
+    Core::StandardFileWizard(parameters, parent),
     m_mimeType(mimeType),
     m_editorKind(editorKind),
     m_suggestedFileName(suggestedFileName)
diff --git a/src/plugins/texteditor/textfilewizard.h b/src/plugins/texteditor/textfilewizard.h
index 2cf2a01b39505af4e0ee6b13d585ea0dfd6d17e1..1ccc50166f5521d506c1d68c249ef48ce4d585ba 100644
--- a/src/plugins/texteditor/textfilewizard.h
+++ b/src/plugins/texteditor/textfilewizard.h
@@ -50,7 +50,6 @@ public:
                    const QString &editorKind,
                    const QString &suggestedFileName,
                    const BaseFileWizardParameters &parameters,
-                   Core::ICore *core,
                    QObject *parent = 0);
 
 protected:
diff --git a/src/plugins/vcsbase/basevcseditorfactory.cpp b/src/plugins/vcsbase/basevcseditorfactory.cpp
index 392b9c269642b4f62e33e95356927491cf420a4d..edfadc7032a27da683f68b32ef207e27cf73e5a2 100644
--- a/src/plugins/vcsbase/basevcseditorfactory.cpp
+++ b/src/plugins/vcsbase/basevcseditorfactory.cpp
@@ -43,28 +43,26 @@
 
 namespace VCSBase {
 
-struct BaseVCSEditorFactoryPrivate  {
-    BaseVCSEditorFactoryPrivate(const VCSBaseEditorParameters *t, Core::ICore *core);
+struct BaseVCSEditorFactoryPrivate
+{
+    BaseVCSEditorFactoryPrivate(const VCSBaseEditorParameters *t);
 
     const VCSBaseEditorParameters *m_type;
     const QString m_kind;
     const QStringList m_mimeTypes;
-    Core::ICore *m_core;
     TextEditor::TextEditorActionHandler *m_editorHandler;
 };
 
-BaseVCSEditorFactoryPrivate::BaseVCSEditorFactoryPrivate(const VCSBaseEditorParameters *t, Core::ICore *core) :
+BaseVCSEditorFactoryPrivate::BaseVCSEditorFactoryPrivate(const VCSBaseEditorParameters *t) :
     m_type(t),
     m_kind(QLatin1String(t->kind)),
     m_mimeTypes(QStringList(QLatin1String(t->mimeType))),
-    m_core(core),
-    m_editorHandler(new TextEditor::TextEditorActionHandler(core, t->kind))
+    m_editorHandler(new TextEditor::TextEditorActionHandler(t->kind))
 {
 }
 
-BaseVCSEditorFactory::BaseVCSEditorFactory(const VCSBaseEditorParameters *t,
-                                           Core::ICore *core) :
-    m_d(new BaseVCSEditorFactoryPrivate(t, core))
+BaseVCSEditorFactory::BaseVCSEditorFactory(const VCSBaseEditorParameters *t)
+  : m_d(new BaseVCSEditorFactoryPrivate(t))
 {
 }
 
@@ -85,7 +83,7 @@ QString BaseVCSEditorFactory::kind() const
 
 Core::IFile *BaseVCSEditorFactory::open(const QString &fileName)
 {
-    Core::IEditor *iface = m_d->m_core->editorManager()->openEditor(fileName, kind());
+    Core::IEditor *iface = Core::ICore::instance()->editorManager()->openEditor(fileName, kind());
     return iface ? iface->file() : 0;
 }
 
diff --git a/src/plugins/vcsbase/basevcseditorfactory.h b/src/plugins/vcsbase/basevcseditorfactory.h
index bc10a21180dd4712fa3d92eb5950c3d79cadde7f..ca6e926937ad03bd02f8ab4157201c6331eb3a47 100644
--- a/src/plugins/vcsbase/basevcseditorfactory.h
+++ b/src/plugins/vcsbase/basevcseditorfactory.h
@@ -41,14 +41,6 @@
 
 #include <QtCore/QStringList>
 
-namespace TextEditor {
-    class TextEditorActionHandler;
-}
-
-namespace Core {
-    class ICore;
-}
-
 namespace VCSBase {
 
 struct BaseVCSEditorFactoryPrivate;
@@ -59,8 +51,7 @@ class VCSBASE_EXPORT BaseVCSEditorFactory : public Core::IEditorFactory
 {
     Q_OBJECT
 public:
-    explicit BaseVCSEditorFactory(const VCSBaseEditorParameters *type,
-                                  Core::ICore *core);
+    explicit BaseVCSEditorFactory(const VCSBaseEditorParameters *type);
     virtual ~BaseVCSEditorFactory();
 
     virtual QStringList mimeTypes() const;
@@ -85,7 +76,6 @@ class VCSEditorFactory : public BaseVCSEditorFactory
 {
 public:
     explicit VCSEditorFactory(const VCSBaseEditorParameters *type,
-                              Core::ICore *core,
                               QObject *describeReceiver = 0,
                               const char *describeSlot = 0);
 
@@ -98,10 +88,9 @@ private:
 
 template <class Editor>
 VCSEditorFactory<Editor>::VCSEditorFactory(const VCSBaseEditorParameters *type,
-                                           Core::ICore *core,
                                            QObject *describeReceiver,
                                            const char *describeSlot) :
-    BaseVCSEditorFactory(type, core),
+    BaseVCSEditorFactory(type),
     m_describeReceiver(describeReceiver),
     m_describeSlot(describeSlot)
 {