diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 3f460a4ac3c1ca4a160c6f9fa55bbcc16e10700e..caa52fa408f3f5e0a7ef30244c8e3502bae9ff7a 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -981,10 +981,14 @@ void CMakeCbpParser::parseUnit()
         if (isEndElement()) {
             if (!fileName.endsWith(".rule") && !m_processedUnits.contains(fileName)) {
                 // Now check whether we found a virtual element beneath
-                if (m_parsingCmakeUnit)
-                    m_fileList.append( new ProjectExplorer::FileNode(fileName, ProjectExplorer::SourceType, false));
-                else
+                if (m_parsingCmakeUnit) {
                     m_cmakeFileList.append( new ProjectExplorer::FileNode(fileName, ProjectExplorer::ProjectFileType, false));
+                } else {
+                    if (fileName.endsWith(".qrc"))
+                        m_fileList.append( new ProjectExplorer::FileNode(fileName, ProjectExplorer::ResourceType, false));
+                    else
+                        m_fileList.append( new ProjectExplorer::FileNode(fileName, ProjectExplorer::SourceType, false));
+                }
                 m_processedUnits.insert(fileName);
             }
             return;