diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index d42b8cb653f54293a7ea26b3359b5f0cb4e9bad5..fbc5097db5389b84ea1c00a5b18f17ae8549ee44 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -557,11 +557,12 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, ProFileReader *readerExac
             folders[i] = projectDir + "/" + folders.at(i);
     }
 
-    // Remove non existing items
+    // Remove non existing items and non folders
+    // todo fix files in INSTALL rules
     QStringList::iterator it = folders.begin();
     while (it != folders.end()) {
         QFileInfo fi(*it);
-        if (!fi.exists())
+        if (!fi.exists() || !fi.isDir())
             it = folders.erase(it);
         else
             ++it;
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index f11e6ef34301f0e8c949ccd7a489536ca24a9988..314357f3605195181ae11525709ec8bc5d941001 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -1184,7 +1184,8 @@ void CentralizedFolderWatcher::watchFolders(const QList<QString> &folders, Qt4Pr
         // Support for recursive watching
         // we add the recursive directories we find
         QSet<QString> tmp = recursiveDirs(folder);
-        m_watcher.addPaths(tmp.toList());
+        if (!tmp.isEmpty())
+            m_watcher.addPaths(tmp.toList());
         m_recursiveWatchedFolders += tmp;
 
         if (debugCFW)