diff --git a/tests/manual/proparser/main.cpp b/tests/manual/proparser/main.cpp
index 27b4bc3c00f4cbdceb94403c0af4cbfe3fa1029b..d59da89b42d14ef7b4e42515de965267d982fb18 100644
--- a/tests/manual/proparser/main.cpp
+++ b/tests/manual/proparser/main.cpp
@@ -68,7 +68,9 @@ static int evaluate(const QString &fileName, const QString &in_pwd, const QStrin
         return 2;
 
     if (visitor.templateType() == ProFileEvaluator::TT_Subdirs) {
-        foreach (const QString &subDirVar, visitor.values(QLatin1String("SUBDIRS"))) {
+        QStringList subdirs = visitor.values(QLatin1String("SUBDIRS"));
+        subdirs.removeDuplicates();
+        foreach (const QString &subDirVar, subdirs) {
             QString realDir;
             const QString subDirKey = subDirVar + QLatin1String(".subdir");
             const QString subDirFileKey = subDirVar + QLatin1String(".file");