diff --git a/src/plugins/qmljseditor/qmljsmodelmanager.cpp b/src/plugins/qmljseditor/qmljsmodelmanager.cpp
index 2deaef8fba24732ffd2ddc2cf9c39cc9b675b4a1..d4d553041d86139e37c7f0c41073151f4eebcd00 100644
--- a/src/plugins/qmljseditor/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljseditor/qmljsmodelmanager.cpp
@@ -148,6 +148,18 @@ void ModelManager::parse(QFutureInterface<void> &future,
         future.setProgressValue(i);
 
         const QString fileName = files.at(i);
+
+        const QFileInfo fileInfo(fileName);
+        Core::MimeType fileMimeTy = db->findByFile(fileInfo);
+
+        bool isQmlFile = true;
+
+        if (matchesMimeType(fileMimeTy, jsSourceTy))
+            isQmlFile = false;
+
+        else if (! matchesMimeType(fileMimeTy, qmlSourceTy))
+            continue; // skip it. it's not a QML or a JS file.
+
         QString contents;
         int documentRevision = 0;
 
@@ -169,15 +181,10 @@ void ModelManager::parse(QFutureInterface<void> &future,
         doc->setDocumentRevision(documentRevision);
         doc->setSource(contents);
 
-        const QFileInfo fileInfo(fileName);
-        Core::MimeType fileMimeTy = db->findByFile(fileInfo);
-
-        if (matchesMimeType(fileMimeTy, jsSourceTy))
-            doc->parseJavaScript();
-        else if (matchesMimeType(fileMimeTy, qmlSourceTy))
+        if (isQmlFile)
             doc->parseQml();
         else
-            qWarning() << "Don't know how to treat" << fileName;
+            doc->parseJavaScript();
 
         modelManager->emitDocumentUpdated(doc);
     }