diff --git a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp
index 496d075703be27dd51dfdee9b855ab8dfc02db95..bd9ddfd3e17a779c35c29190c515ad9d92eb5d0e 100644
--- a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp
+++ b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp
@@ -109,6 +109,7 @@ void FileFilterBaseItem::updateFileList()
     const QSet<QString> watchedDirectories = m_fsWatcher.directories().toSet();
     const QSet<QString> unwatchDirs = watchedDirectories - dirsToBeWatched;
     const QSet<QString> watchDirs = dirsToBeWatched - watchedDirectories;
+
     if (!unwatchDirs.isEmpty())
         m_fsWatcher.removePaths(unwatchDirs.toList());
     if (!watchDirs.isEmpty())
@@ -130,7 +131,7 @@ QSet<QString> FileFilterBaseItem::filesInSubTree(const QDir &rootDir, const QDir
 
     if (m_recursive) {
         foreach (const QFileInfo &subDir, dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot)) {
-            fileSet += filesInSubTree(rootDir, QDir(subDir.absoluteFilePath()));
+            fileSet += filesInSubTree(rootDir, QDir(subDir.absoluteFilePath()), parsedDirs);
         }
     }
     return fileSet;