diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp
index 18438e2c06e095ce0563a542e9d1dad42965ace8..60f6a80fb5f23a698b5c5eac2208c29812c4c268 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp
@@ -44,6 +44,9 @@
 #include <QtCore/QFile>
 #include <QtCore/QTextStream>
 
+using namespace ExtensionSystem;
+using namespace ProjectExplorer;
+
 namespace Qt4ProjectManager {
     namespace Internal {
 
@@ -59,10 +62,10 @@ MaemoManager::MaemoManager()
     Q_ASSERT(!m_instance);
 
     m_instance = this;
+    QemuRuntimeManager::instance(this);
     MaemoDeviceConfigurations::instance(this);
 
-    ExtensionSystem::PluginManager *pluginManager
-        = ExtensionSystem::PluginManager::instance();
+    PluginManager *pluginManager = PluginManager::instance();
     pluginManager->addObject(m_runControlFactory);
     pluginManager->addObject(m_runConfigurationFactory);
     pluginManager->addObject(m_packageCreationFactory);
@@ -71,8 +74,7 @@ MaemoManager::MaemoManager()
 
 MaemoManager::~MaemoManager()
 {
-    ExtensionSystem::PluginManager *pluginManager
-        = ExtensionSystem::PluginManager::instance();
+    PluginManager *pluginManager = PluginManager::instance();
     pluginManager->removeObject(m_runControlFactory);
     pluginManager->removeObject(m_runConfigurationFactory);
     pluginManager->removeObject(m_packageCreationFactory);
@@ -87,13 +89,7 @@ MaemoManager &MaemoManager::instance()
     return *m_instance;
 }
 
-void MaemoManager::init()
-{
-    m_qemuRuntimeManager = new QemuRuntimeManager(this);
-}
-
-bool
-MaemoManager::isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) const
+bool MaemoManager::isValidMaemoQtVersion(const QtVersion *version) const
 {
     QString path = QDir::cleanPath(version->qmakeCommand());
     path = path.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX));
@@ -116,8 +112,7 @@ MaemoManager::isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version)
     return false;
 }
 
-ProjectExplorer::ToolChain*
-MaemoManager::maemoToolChain(const QtVersion *version) const
+ToolChain* MaemoManager::maemoToolChain(const QtVersion *version) const
 {
     QString targetRoot = QDir::cleanPath(version->qmakeCommand());
     targetRoot.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX));
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h
index 786ac125e262073078bc4d02889d417cfc7b4986..689fbfa27ffa8f7a3882d0cc8739263cff4c596b 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h
@@ -56,8 +56,6 @@ public:
     ~MaemoManager();
     static MaemoManager &instance();
 
-    void init();
-
     bool isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) const;
     ToolChain *maemoToolChain(const Qt4ProjectManager::QtVersion *version) const;
 
diff --git a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp
index 3d16648d76a1cbecc15685d15b05d5fcf0b68952..427e118e0b01be4052f11ba23ab863eb60925d93 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp
@@ -69,9 +69,6 @@ QemuRuntimeManager::QemuRuntimeManager(QObject *parent)
     , m_needsSetup(true)
     , m_userTerminated(false)
 {
-    Q_ASSERT(!m_instance);
-    m_instance = this;
-
     m_qemuStarterIcon.addFile(":/qt-maemo/images/qemu-run.png", iconSize);
     m_qemuStarterIcon.addFile(":/qt-maemo/images/qemu-stop.png", iconSize,
         QIcon::Normal, QIcon::On);
@@ -117,11 +114,13 @@ QemuRuntimeManager::QemuRuntimeManager(QObject *parent)
 QemuRuntimeManager::~QemuRuntimeManager()
 {
     terminateRuntime();
+    m_instance = 0;
 }
 
-QemuRuntimeManager &QemuRuntimeManager::instance()
+QemuRuntimeManager &QemuRuntimeManager::instance(QObject *parent)
 {
-    Q_ASSERT(m_instance);
+    if (m_instance == 0)
+        m_instance = new QemuRuntimeManager(parent);
     return *m_instance;
 }
 
diff --git a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h
index 0054596b2e93c136011a0e1e81ef86ea4d5e8cd6..707745a8c9d939f1e0838bc64f8c16b4e884ac20 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h
@@ -71,10 +71,7 @@ class QemuRuntimeManager : public QObject
     Q_OBJECT
 
 public:
-    QemuRuntimeManager(QObject *parent = 0);
-    ~QemuRuntimeManager();
-
-    static QemuRuntimeManager& instance();
+    static QemuRuntimeManager& instance(QObject *parent = 0);
 
     bool runtimeForQtVersion(int uniqueId, Runtime *rt) const;
 
@@ -111,6 +108,9 @@ private slots:
     void qemuStatusChanged(QemuStatus status, const QString &error);
 
 private:
+    QemuRuntimeManager(QObject *parent);
+    ~QemuRuntimeManager();
+
     void setupRuntimes();
     bool sessionHasMaemoTarget() const;
 
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
index f79dec8c08ccbdd041d79ee651e6f1d783fc0c33..6a1f08e01d942990f0242b9384d8b6999c9e1713 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
@@ -153,7 +153,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
     addAutoReleasedObject(new LinguistExternalEditor);
 
     addAutoReleasedObject(new S60Manager);
-    addAutoReleasedObject(m_maemoManager = new MaemoManager);
+    addAutoReleasedObject(new MaemoManager);
 
     new ProFileCacheManager(this);
 
@@ -228,7 +228,6 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
 void Qt4ProjectManagerPlugin::extensionsInitialized()
 {
     m_qt4ProjectManager->init();
-    m_maemoManager->init(); // depends on the Qt4ProjectManager
 }
 
 void Qt4ProjectManagerPlugin::updateContextMenu(Project *project,
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h
index eec6477524e2e463dc5356c51d9e9ae11372c700..b6697d6f1770fca1fb954a323ac19afb69191f89 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h
@@ -56,7 +56,6 @@ class QMakeStepFactory;
 class MakeStepFactory;
 class EmbeddedPropertiesPage;
 class GettingStartedWelcomePage;
-class MaemoManager;
 
 class Qt4ProjectManagerPlugin : public ExtensionSystem::IPlugin
 {
@@ -86,7 +85,6 @@ private:
     ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer;
     ProFileEditorFactory *m_proFileEditorFactory;
     Qt4Manager *m_qt4ProjectManager;
-    MaemoManager *m_maemoManager;
 
     int m_projectContext;