diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp
index ba97e5a212a624c5d2b5ef2ea64c2234aaa03ce9..6ebf51b2a2c0ad8f989e836181dd9c934a2d1654 100644
--- a/src/plugins/cppeditor/cpphoverhandler.cpp
+++ b/src/plugins/cppeditor/cpphoverhandler.cpp
@@ -72,10 +72,16 @@ CppHoverHandler::CppHoverHandler(QObject *parent)
     m_modelManager = m_core->pluginManager()->getObject<CppTools::CppModelManagerInterface>();
 
     QFileInfo fi(ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>()->settings()->fileName());
-    m_helpEngine = new QHelpEngineCore(fi.absolutePath()
+    // FIXME shouldn't the help engine create the directory if it doesn't exist?
+    QDir directory(fi.absolutePath()+"/qtcreator");
+    if (!directory.exists())
+        directory.mkpath(directory.absolutePath());
+
+    m_helpEngine = new QHelpEngineCore(directory.absolutePath()
                                        + QLatin1String("/helpcollection.qhc"), this);
     //m_helpEngine->setAutoSaveFilter(false);
-    m_helpEngine->setupData();
+    if (!m_helpEngine->setupData())
+        qWarning() << "Could not initialize help engine:" << m_helpEngine->error();
     m_helpEngine->setCurrentFilter(tr("Unfiltered"));
     m_helpEngineNeedsSetup = m_helpEngine->registeredDocumentations().count() == 0;
 
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index bdc98b66ee124e863bbfccf400c633ac721a135c..5ecb375240dcc4057b06f75f55ddbb7c327ea288 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -83,7 +83,8 @@ void HelpManager::registerDocumentation(const QStringList &fileNames)
     bool needsSetup = false;
     {
         QHelpEngineCore hc(m_helpEngine->collectionFile());
-        hc.setupData();
+        if (!hc.setupData())
+            qWarning() << "Could not initialize help engine:" << hc.error();
         foreach (const QString &fileName, fileNames) {
             if (!QFile::exists(fileName))
                 continue;
@@ -132,7 +133,7 @@ bool HelpPlugin::initialize(const QStringList & /*arguments*/, QString *)
 
     // FIXME shouldn't the help engine create the directory if it doesn't exist?
     QFileInfo fi(m_core->settings()->fileName());
-    QDir directory(fi.absolutePath());
+    QDir directory(fi.absolutePath()+"/qtcreator");
     if (!directory.exists())
         directory.mkpath(directory.absolutePath());
     m_helpEngine = new QHelpEngine(directory.absolutePath()