diff --git a/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec b/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec
index fd8fd1f2263abc0ddab994c1995439a81f2a32e5..906f6c3ece3645b73435d2d4122ad508f8260673 100644
--- a/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec
+++ b/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec
@@ -18,6 +18,7 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
         <dependency name="ProjectExplorer" version="2.0.90"/>
         <dependency name="CppTools" version="2.0.90"/>
         <dependency name="CppEditor" version="2.0.90"/>
+        <dependency name="QmlJSEditor" version="2.0.90"/>
         <dependency name="Designer" version="2.0.90"/>
         <dependency name="Debugger" version="2.0.90"/>
     </dependencyList>
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 25199985fb5c6fe3f333cafca70ef2c26ad8b8e0..888c45f26524710eec649affc5b140467e0f8c41 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -1591,6 +1591,8 @@ void Qt4ProFileNode::applyEvaluate(bool parseResult, bool async)
                                               0);
     newVarValues[LibDirectoriesVar] = libDirectories(m_readerExact);
     newVarValues[ConfigVar] = m_readerExact->values(QLatin1String("CONFIG"));
+    newVarValues[QmlImportPathVar] = m_readerExact->absolutePathValues(
+                QLatin1String("QML_IMPORT_PATH"), m_projectDir);
 
     if (m_varValues != newVarValues) {
         m_varValues = newVarValues;
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index 371de843b6c81f4a60e4fcd2a2edd7fed51253df..f9bdfd29c50c33633ca86646a3a8fd9a34d029d5 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -94,7 +94,8 @@ enum Qt4Variable {
     PkgConfigVar,
     PrecompiledHeaderVar,
     LibDirectoriesVar,
-    ConfigVar
+    ConfigVar,
+    QmlImportPathVar
 };
 
 class Qt4PriFileNode;
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 69df3c5ebb7acd58d84b9fb1ce257a60ce3b4587..907276b280e460b609d5967138e3e75098aad1be 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -47,6 +47,7 @@
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <extensionsystem/pluginmanager.h>
 #include <cpptools/cppmodelmanagerinterface.h>
+#include <qmljs/qmljsmodelmanagerinterface.h>
 #include <projectexplorer/buildenvironmentwidget.h>
 #include <projectexplorer/customexecutablerunconfiguration.h>
 #include <utils/qtcassert.h>
@@ -318,7 +319,7 @@ bool Qt4Project::fromMap(const QVariantMap &map)
     update();
     updateFileList();
     // This might be incorrect, need a full update
-    updateCodeModel();
+    updateCodeModels();
 
     createApplicationProjects();
 
@@ -395,7 +396,7 @@ bool Qt4Project::equalFileList(const QStringList &a, const QStringList &b)
     return (ait == aend && bit == bend);
 }
 
-void Qt4Project::updateCodeModel()
+void Qt4Project::updateCodeModels()
 {
     if (debug)
         qDebug()<<"Qt4Project::updateCodeModel()";
@@ -403,6 +404,12 @@ void Qt4Project::updateCodeModel()
     if (!activeTarget() || !activeTarget()->activeBuildConfiguration())
         return;
 
+    updateCppCodeModel();
+    updateQmlJSCodeModel();
+}
+
+void Qt4Project::updateCppCodeModel()
+{
     Qt4BuildConfiguration *activeBC = activeTarget()->activeBuildConfiguration();
 
     CppTools::CppModelManagerInterface *modelmanager =
@@ -575,6 +582,28 @@ void Qt4Project::updateCodeModel()
     }
 }
 
+void Qt4Project::updateQmlJSCodeModel()
+{
+    QmlJS::ModelManagerInterface *modelManager = QmlJS::ModelManagerInterface::instance();
+    if (!modelManager)
+        return;
+
+    QmlJS::ModelManagerInterface::ProjectInfo projectInfo = modelManager->projectInfo(this);
+
+    // Not essential since the QmlJS engine parses required files on demand.
+    //projectInfo.sourceFiles = ...
+
+    FindQt4ProFiles findQt4ProFiles;
+    QList<Qt4ProFileNode *> proFiles = findQt4ProFiles(rootProjectNode());
+
+    foreach (Qt4ProFileNode *node, proFiles) {
+        projectInfo.importPaths.append(node->variableValue(QmlImportPathVar));
+    }
+    projectInfo.importPaths.removeDuplicates();
+
+    modelManager->updateProjectInfo(projectInfo);
+}
+
 void Qt4Project::qtVersionsChanged()
 {
     setSupportedTargetIds(QtVersionManager::instance()->supportedTargetIds());
@@ -751,7 +780,7 @@ void Qt4Project::decrementPendingEvaluateFutures()
         } else  if (m_asyncUpdateState != ShuttingDown){
             // After beeing done, we need to call:
             updateFileList();
-            updateCodeModel();
+            updateCodeModels();
             if (debug)
                 qDebug()<<"  Setting state to Base";
             m_asyncUpdateState = Base;
diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h
index 25e550a7fe9747a9e179d887efb00a49f66dd33c..c39215911c04a89dea867f39e64fb729f2ab0c71 100644
--- a/src/plugins/qt4projectmanager/qt4project.h
+++ b/src/plugins/qt4projectmanager/qt4project.h
@@ -217,7 +217,9 @@ private:
     void scheduleAsyncUpdate();
 
     void createApplicationProjects();
-    void updateCodeModel();
+    void updateCodeModels();
+    void updateCppCodeModel();
+    void updateQmlJSCodeModel();
     void updateFileList();
 
     static void collectLeafProFiles(QList<Internal::Qt4ProFileNode *> &list, Internal::Qt4ProFileNode *node);
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
index e40eac29c4b6c236e180e6f5931f337c005d6880..7d2124fdded3258bf448f8fdafb1f38ca090055f 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
+++ b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
@@ -1,6 +1,7 @@
 include(../../plugins/projectexplorer/projectexplorer.pri)
 include(../../plugins/cpptools/cpptools.pri)
 include(../../plugins/cppeditor/cppeditor.pri)
+include(../../plugins/qmljseditor/qmljseditor.pri)
 include(../../plugins/designer/designer.pri)
 include(../../plugins/debugger/debugger.pri)
 include(../../libs/symbianutils/symbianutils.pri)