diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index 2f3e10f9ea0f73279589e5f19705e7af2710b042..eec703fc8a3252e83447c71deee7f228dfd41fa3 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -856,15 +856,15 @@ ProItem::ProItemReturn ProFileEvaluator::Private::visitEndProFile(ProFile * pro)
                 }
                 m_cumulative = cumulative;
             }
-
-            foreach (ProBlock *itm, m_replaceFunctions)
-                itm->deref();
-            m_replaceFunctions.clear();
-            foreach (ProBlock *itm, m_testFunctions)
-                itm->deref();
-            m_testFunctions.clear();
         }
 
+        foreach (ProBlock *itm, m_replaceFunctions)
+            itm->deref();
+        m_replaceFunctions.clear();
+        foreach (ProBlock *itm, m_testFunctions)
+            itm->deref();
+        m_testFunctions.clear();
+
         m_profileStack.pop();
         return returnBool(QDir::setCurrent(m_oldPath));
     }