diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index c738c6c2ce3d0f4b3d10b04c9647e50c6e6e53cc..975c5a623c020ded37541f86133197742427440a 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -31,6 +31,9 @@
 #include "qmlprojectfile.h"
 #include "qmlprojectmanagerconstants.h"
 #include "fileformat/qmlprojectitem.h"
+
+#include <coreplugin/icore.h>
+#include <coreplugin/messagemanager.h>
 #include <extensionsystem/pluginmanager.h>
 #include <projectexplorer/filewatcher.h>
 #include <qmljseditor/qmljsmodelmanagerinterface.h>
@@ -77,30 +80,6 @@ QDir QmlProject::projectDir() const
 QString QmlProject::filesFileName() const
 { return m_fileName; }
 
-static QStringList readLines(const QString &absoluteFileName)
-{
-    QStringList lines;
-
-    QFile file(absoluteFileName);
-    if (file.open(QFile::ReadOnly)) {
-        QTextStream stream(&file);
-
-        forever {
-            QString line = stream.readLine();
-            if (line.isNull())
-                break;
-
-            line = line.trimmed();
-            if (line.isEmpty())
-                continue;
-
-            lines.append(line);
-        }
-    }
-
-    return lines;
-}
-
 void QmlProject::parseProject(RefreshOptions options)
 {
     if (options & Files) {
@@ -116,10 +95,9 @@ void QmlProject::parseProject(RefreshOptions options)
                     m_projectItem = qobject_cast<QmlProjectItem*>(component->create());
                     connect(m_projectItem.data(), SIGNAL(qmlFilesChanged()), this, SLOT(refreshFiles()));
                 } else {
-                    qWarning() << m_fileName << "is not valid qml file, falling back to old format ...";
-                    m_files = convertToAbsoluteFiles(readLines(filesFileName()));
-                    m_files.removeDuplicates();
-                    m_modelManager->updateSourceFiles(m_files);
+                    Core::MessageManager *messageManager = Core::ICore::instance()->messageManager();
+                    messageManager->printToOutputPane(tr("Error while loading project file!"));
+                    messageManager->printToOutputPane(component->errorsString(), true);
                 }
             }
         }
@@ -173,6 +151,11 @@ QStringList QmlProject::files() const
     return files;
 }
 
+bool QmlProject::validProjectFile() const
+{
+    return !m_projectItem.isNull();
+}
+
 QStringList QmlProject::libraryPaths() const
 {
     QStringList libraryPaths;
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index 994d75acb4edecf3dca1cc40d2ff18f243ff511b..3e209e53fadc7ecdca8d8a8f0fe2c12567614c49 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -85,6 +85,8 @@ public:
     Internal::QmlProjectNode *rootProjectNode() const;
     QStringList files(FilesMode fileMode) const;
 
+    bool validProjectFile() const;
+
     enum RefreshOption {
         ProjectFile   = 0x01,
         Files         = 0x02,
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp b/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp
index 3d352876b98c175b024aa2803ca30f5211038127..2fc768f195b2117db192dc421c459f076fe1b433 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp
@@ -73,16 +73,14 @@ ProjectExplorer::Project *Manager::openProject(const QString &fileName)
 
     foreach (ProjectExplorer::Project *pi, projectExplorer->session()->projects()) {
         if (fileName == pi->file()->fileName()) {
-            messageManager->printToOutputPane(tr("Failed opening project '%1': Project already open").arg(QDir::toNativeSeparators(fileName)));
-            messageManager->displayStatusBarMessage(tr("Failed opening project"), 5000);
+            messageManager->printToOutputPanePopup(tr("Failed opening project '%1': Project already open")
+                                                   .arg(QDir::toNativeSeparators(fileName)));
             return 0;
         }
     }
 
     if (fileInfo.isFile()) {
-        QmlProject *project = new QmlProject(this, fileName);
-        messageManager->displayStatusBarMessage(tr("Done opening project"), 5000);
-        return project;
+        return new QmlProject(this, fileName);
     }
 
     return 0;