diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp
index 7e8d40dc3ae5501bdaa54710ec6cc9170c4be02e..25325a84a66a99bed52ed54c1cd54a455fe123d8 100644
--- a/src/plugins/help/helpmanager.cpp
+++ b/src/plugins/help/helpmanager.cpp
@@ -26,21 +26,35 @@
 ** contact the sales department at http://qt.nokia.com/contact.
 **
 **************************************************************************/
-#include "helpmanager.h"
 
+#include "helpmanager.h"
 #include "helpplugin.h"
 
-#include <QtCore/QUrl>
+#include <coreplugin/icore.h>
+
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
 #include <QtCore/QString>
+#include <QtCore/QUrl>
+
+#include <QtHelp/QHelpEngineCore>
 
 using namespace Help;
 using namespace Help::Internal;
 
+QHelpEngineCore* HelpManager::m_coreEngine = 0;
+
 HelpManager::HelpManager(HelpPlugin* plugin)
     : m_plugin(plugin)
 {
 }
 
+HelpManager::~HelpManager()
+{
+    delete m_coreEngine;
+    m_coreEngine = 0;
+}
+
 void HelpManager::handleHelpRequest(const QString &url)
 {
     m_plugin->handleHelpRequest(url);
@@ -53,3 +67,21 @@ void HelpManager::registerDocumentation(const QStringList &fileNames)
         emit registerDocumentation();
     }
 }
+
+QString HelpManager::collectionFilePath()
+{
+    const QFileInfo fi(Core::ICore::instance()->settings()->fileName());
+    const QDir directory(fi.absolutePath() + QLatin1String("/qtcreator"));
+    if (!directory.exists())
+        directory.mkpath(directory.absolutePath());
+    return directory.absolutePath() + QLatin1String("/helpcollection.qhc");
+}
+
+QHelpEngineCore& HelpManager::helpEngineCore()
+{
+    if (!m_coreEngine) {
+        m_coreEngine = new QHelpEngineCore(collectionFilePath());
+        m_coreEngine->setupData();
+    }
+    return *m_coreEngine;
+}
diff --git a/src/plugins/help/helpmanager.h b/src/plugins/help/helpmanager.h
index 66371468c5d996a6b5c3e4f03e7b943b0ff9e9ca..17d33cfe23ebcb562906bedd8914cac527e413da 100644
--- a/src/plugins/help/helpmanager.h
+++ b/src/plugins/help/helpmanager.h
@@ -33,6 +33,7 @@
 
 #include <QtCore/QObject>
 
+QT_FORWARD_DECLARE_CLASS(QHelpEngineCore)
 QT_FORWARD_DECLARE_CLASS(QString)
 QT_FORWARD_DECLARE_CLASS(QStringList)
 
@@ -45,16 +46,22 @@ class HELP_EXPORT HelpManager : public QObject
 {
     Q_OBJECT
 public:
-    HelpManager(Internal::HelpPlugin*);
+    HelpManager(Internal::HelpPlugin *plugin);
+    ~HelpManager();
 
     void handleHelpRequest(const QString &url);
     void registerDocumentation(const QStringList &fileNames);
 
+    static QString collectionFilePath();
+    static QHelpEngineCore& helpEngineCore();
+
 signals:
     void registerDocumentation();
 
 private:
     Internal::HelpPlugin *m_plugin;
+
+    static QHelpEngineCore* m_coreEngine;
 };
 
 }   // Help