diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index 55e3e5373b7314bfd05b12e67012969d99b0c014..8667b79fde08b5ea5381327e87d4a9c2283ba59b 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -2578,7 +2578,7 @@ ProStringList ProFileEvaluator::Private::evaluateExpandFunction(
                         ret.prepend(item);
                     foreach (const ProString &dep, dependees[item]) {
                         QSet<ProString> &dset = dependencies[dep];
-                        dset.remove(item);
+                        dset.remove(rootSet.at(i)); // *Don't* use 'item' - rootSet may have changed!
                         if (dset.isEmpty())
                             rootSet << dep;
                     }