diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index b1fbc90bf4e618b3a871dd82d1e13007b0d484b4..f480a72398f21be6638c7c78e20b7ceef65a3375 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -1260,7 +1260,11 @@ void CentralizedFolderWatcher::folderChanged(const QString &folder)
     if (!tmp.isEmpty()) {
         if (debugCFW)
             qDebug()<<"found new recursive dirs"<<tmp;
-        m_watcher.addPaths(tmp.toList());
+
+        QSet<QString> alreadyAdded = m_watcher.directories().toSet();
+        tmp.subtract(alreadyAdded);
+        if (!tmp.isEmpty())
+            m_watcher.addPaths(tmp.toList());
         m_recursiveWatchedFolders += tmp;
     }
 }