diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 938f23f930fa65ed826bc4dd0b87efd7585f0b1c..9248a99c58d159e65d94ef25fbfdf6f148c7d2d7 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -1139,7 +1139,7 @@ void MainWindow::readSettings()
     restoreState(m_settings->value(QLatin1String(windowStateKey)).toByteArray());
 
     bool modeSelectorVisible = m_settings->value(QLatin1String(modeSelectorVisibleKey), true).toBool();
-    ModeManager::instance()->setModeSelectorVisible(modeSelectorVisible);
+    ModeManager::setModeSelectorVisible(modeSelectorVisible);
     m_toggleModeSelectorAction->setChecked(modeSelectorVisible);
 
     m_settings->endGroup();
diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp
index b278f08c48f0331935281e4defdd2ec7b70a7f66..dbd66952d7fe052070b5bb79f16d5d16a37805f4 100644
--- a/src/plugins/coreplugin/modemanager.cpp
+++ b/src/plugins/coreplugin/modemanager.cpp
@@ -188,7 +188,7 @@ void ModeManager::objectAdded(QObject *obj)
     Command *cmd = ActionManager::registerShortcut(shortcut, shortcutId, Context(Constants::C_GLOBAL));
 
     d->m_modeShortcuts.insert(index, cmd);
-    connect(cmd, SIGNAL(keySequenceChanged()), this, SLOT(updateModeToolTip()));
+    connect(cmd, SIGNAL(keySequenceChanged()), m_instance, SLOT(updateModeToolTip()));
     for (int i = 0; i < d->m_modeShortcuts.size(); ++i) {
         Command *currentCmd = d->m_modeShortcuts.at(i);
         // we need this hack with currentlyHasDefaultSequence
@@ -205,7 +205,7 @@ void ModeManager::objectAdded(QObject *obj)
     d->m_signalMapper->setMapping(shortcut, mode->id().uniqueIdentifier());
     connect(shortcut, SIGNAL(activated()), d->m_signalMapper, SLOT(map()));
     connect(mode, SIGNAL(enabledStateChanged(bool)),
-            this, SLOT(enabledStateChanged()));
+            m_instance, SLOT(enabledStateChanged()));
 }
 
 void ModeManager::updateModeToolTip()
@@ -336,7 +336,7 @@ bool ModeManager::isModeSelectorVisible()
     return d->m_modeSelectorVisible;
 }
 
-ModeManager *ModeManager::instance()
+QObject *ModeManager::instance()
 {
     return m_instance;
 }
diff --git a/src/plugins/coreplugin/modemanager.h b/src/plugins/coreplugin/modemanager.h
index a14670f40afe2aae34401b81e220cd872dbec61f..2577505f976f18fe8a93e5501d5eb572265abf97 100644
--- a/src/plugins/coreplugin/modemanager.h
+++ b/src/plugins/coreplugin/modemanager.h
@@ -52,7 +52,7 @@ class CORE_EXPORT ModeManager : public QObject
     Q_OBJECT
 
 public:
-    static ModeManager *instance();
+    static QObject *instance();
 
     static IMode *currentMode();
     static IMode *mode(Id id);
@@ -66,7 +66,7 @@ public:
     static bool isModeSelectorVisible();
 
 public slots:
-    void setModeSelectorVisible(bool visible);
+    static void setModeSelectorVisible(bool visible);
 
 signals:
     void currentModeAboutToChange(Core::IMode *mode);
@@ -87,7 +87,7 @@ private slots:
 
 private:
     explicit ModeManager(Internal::MainWindow *mainWindow, Internal::FancyTabWidget *modeStack);
-    virtual ~ModeManager();
+    ~ModeManager();
 
     static void init();
 
diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp
index 17339649e951ad32f85e071108ddc9dbf53ffbbf..706f8314eb07c651e3ce0a6d948eb40a4b1098be 100644
--- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp
+++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp
@@ -1495,6 +1495,6 @@ void MiniProjectTargetSelector::paintEvent(QPaintEvent *)
 
 void MiniProjectTargetSelector::switchToProjectsMode()
 {
-    Core::ModeManager::instance()->activateMode(Constants::MODE_SESSION);
+    Core::ModeManager::activateMode(Constants::MODE_SESSION);
     hide();
 }
diff --git a/src/plugins/qt4projectmanager/unconfiguredprojectpanel.cpp b/src/plugins/qt4projectmanager/unconfiguredprojectpanel.cpp
index ee9221e94511d21711267a5d853e61ef91904c8c..366ae42568cbfd08695051ceb49e366ccfc253e9 100644
--- a/src/plugins/qt4projectmanager/unconfiguredprojectpanel.cpp
+++ b/src/plugins/qt4projectmanager/unconfiguredprojectpanel.cpp
@@ -196,14 +196,14 @@ void TargetSetupPageWrapper::cancel()
 {
     ProjectExplorer::ProjectExplorerPlugin::instance()->unloadProject(m_project);
     if (ProjectExplorer::ProjectExplorerPlugin::instance()->session()->projects().isEmpty())
-        Core::ModeManager::instance()->activateMode(Core::Constants::MODE_WELCOME);
+        Core::ModeManager::activateMode(Core::Constants::MODE_WELCOME);
 }
 
 void TargetSetupPageWrapper::done()
 {
     m_targetSetupPage->setupProject(m_project);
     ProjectExplorer::ProjectExplorerPlugin::instance()->requestProjectModeUpdate(m_project);
-    Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT);
+    Core::ModeManager::activateMode(Core::Constants::MODE_EDIT);
 }
 
 void TargetSetupPageWrapper::completeChanged()