diff --git a/src/plugins/qmljseditor/images/qmlfile.png b/src/plugins/qmljseditor/images/qmlfile.png
new file mode 100644
index 0000000000000000000000000000000000000000..568a6dd8509cf0ccbd49b8487410883f70678b36
Binary files /dev/null and b/src/plugins/qmljseditor/images/qmlfile.png differ
diff --git a/src/plugins/qmljseditor/qmljseditor.qrc b/src/plugins/qmljseditor/qmljseditor.qrc
index 11ad582e93e5b452547aa6776dd7efb0bf04af68..38e57bac80854133a70e58be16bfec67c79a753a 100644
--- a/src/plugins/qmljseditor/qmljseditor.qrc
+++ b/src/plugins/qmljseditor/qmljseditor.qrc
@@ -1,5 +1,6 @@
 <RCC>
-    <qresource prefix="/qmljseditor" >
+    <qresource prefix="/qmljseditor">
         <file>QmlJSEditor.mimetypes.xml</file>
+        <file>images/qmlfile.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/qmljseditor/qmljseditorplugin.cpp b/src/plugins/qmljseditor/qmljseditorplugin.cpp
index 65e2835a8f73d1a17df4fc37c685c5e32b9c61aa..e1171190cd830dfa878c1c940718d1693386a741 100644
--- a/src/plugins/qmljseditor/qmljseditorplugin.cpp
+++ b/src/plugins/qmljseditor/qmljseditorplugin.cpp
@@ -41,6 +41,7 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/mimedatabase.h>
 #include <coreplugin/uniqueidmanager.h>
+#include <coreplugin/fileiconprovider.h>
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/actioncontainer.h>
 #include <coreplugin/actionmanager/command.h>
@@ -147,6 +148,9 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e
 
     error_message->clear();
 
+    Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance();
+    iconProvider->registerIconOverlayForSuffix(QIcon(":/qmljseditor/images/qmlfile.png"), "qml");
+
     return true;
 }
 
diff --git a/src/plugins/qmlprojectmanager/images/qmlfolder.png b/src/plugins/qmlprojectmanager/images/qmlfolder.png
new file mode 100644
index 0000000000000000000000000000000000000000..6192ff6c47a12d97070754ed4f147087854694ef
Binary files /dev/null and b/src/plugins/qmlprojectmanager/images/qmlfolder.png differ
diff --git a/src/plugins/qmlprojectmanager/images/qmlproject.png b/src/plugins/qmlprojectmanager/images/qmlproject.png
new file mode 100644
index 0000000000000000000000000000000000000000..e28bdc4d9a8941525755f93a6f71d68fc1b847f1
Binary files /dev/null and b/src/plugins/qmlprojectmanager/images/qmlproject.png differ
diff --git a/src/plugins/qmlprojectmanager/qmlproject.qrc b/src/plugins/qmlprojectmanager/qmlproject.qrc
index 3a446209bf7f05378d263be9d5a49000db00dc9e..82f0873a092bf191ecfb9857d7ce5f09749f93a9 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.qrc
+++ b/src/plugins/qmlprojectmanager/qmlproject.qrc
@@ -1,5 +1,7 @@
 <RCC>
-    <qresource prefix="/qmlproject" >
+    <qresource prefix="/qmlproject">
         <file>QmlProject.mimetypes.xml</file>
+        <file>images/qmlfolder.png</file>
+        <file>images/qmlproject.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp b/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp
index bbf344cfb44f051eebe45ec2173ade7777c0141d..2569b5a0c1c57ddf4c7af8ae421cf289ce0880b9 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp
@@ -32,11 +32,13 @@
 #include "qmlproject.h"
 
 #include <coreplugin/ifile.h>
+#include <coreplugin/fileiconprovider.h>
 #include <projectexplorer/projectexplorer.h>
 
 #include <QFileInfo>
 #include <QDir>
 #include <QTextStream>
+#include <QStyle>
 
 namespace QmlProjectManager {
 namespace Internal {
@@ -47,6 +49,13 @@ QmlProjectNode::QmlProjectNode(QmlProject *project, Core::IFile *projectFile)
       m_projectFile(projectFile)
 {
     setDisplayName(QFileInfo(projectFile->fileName()).completeBaseName());
+    // make overlay
+    const QSize desiredSize = QSize(16, 16);
+    const QIcon projectBaseIcon(QLatin1String(":/qmlproject/images/qmlfolder.png"));
+    const QPixmap projectPixmap = Core::FileIconProvider::overlayIcon(QStyle::SP_DirIcon,
+                                                                      projectBaseIcon,
+                                                                      desiredSize);
+    setIcon(QIcon(projectPixmap));
 }
 
 QmlProjectNode::~QmlProjectNode()
diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
index ff4abcbc982dd8dc02eedb990021866f3bf09dec..3077d69f06cfdf7d67e5a2e4ed1d725298055ba4 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
@@ -40,6 +40,7 @@
 
 #include <extensionsystem/pluginmanager.h>
 
+#include <coreplugin/fileiconprovider.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/mimedatabase.h>
 
@@ -85,6 +86,9 @@ bool QmlProjectPlugin::initialize(const QStringList &, QString *errorMessage)
 
     QmlProjectFileFormat::registerDeclarativeTypes();
 
+    Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance();
+    iconProvider->registerIconOverlayForSuffix(QIcon(":/qmlproject/images/qmlproject.png"), "qmlproject");
+
     return true;
 }