diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp
index 6c6defb53fc5890c08c4c4131fcfdc674e1b9921..1db87aa6342a0e17af262fe2dc8ef36407ced76d 100644
--- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp
+++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp
@@ -34,6 +34,7 @@
 #include "navigatorwidget.h"
 
 #include <nodeproperty.h>
+#include "metainfo.h"
 
 #define _separator_line_color_ "#757575"
 
@@ -78,7 +79,22 @@ void IdItemDelegate::paint(QPainter *painter,
     ModelNode node = m_TreeModel->nodeForIndex(index);
 
     QIcon icon=node.metaInfo().icon();
-    if (icon.isNull()) icon = QIcon(":/ItemLibrary/images/default-icon.png");
+    if (icon.isNull())
+    {
+        // if node has no own icon, search for it in the itemlibrary
+        QList <ItemLibraryInfo> InfoList = node.metaInfo().metaInfo().itemLibraryRepresentations(node.metaInfo());
+        foreach (const ItemLibraryInfo &entry, InfoList)
+        {
+            if (entry.typeName()==node.metaInfo().typeName()) {
+                icon = entry.icon();
+                break;
+            }
+        }
+
+        // if the library was also empty, use the default icon
+        if (icon.isNull()) icon = QIcon(":/ItemLibrary/images/default-icon.png");
+    }
+
     QPixmap pixmap = icon.pixmap(option.rect.width(),option.rect.height()-4);
     painter->drawPixmap(option.rect.x()+5,option.rect.y()+2,pixmap);