diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index b50be3968d3aba6d272830022ac4d631d74959a1..af89ce728fb2fc0508c5b622ed2bc4b97ecd5cd7 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -1356,35 +1356,34 @@ QStringList ProFileEvaluator::Private::evaluateExpandFunction(const QString &fun
                       E_UPPER, E_LOWER, E_FILES, E_PROMPT, E_RE_ESCAPE,
                       E_REPLACE };
 
-    static QHash<QString, int> *expands = 0;
-    if (!expands) {
-        expands = new QHash<QString, int>;
-        expands->insert(QLatin1String("member"), E_MEMBER);
-        expands->insert(QLatin1String("first"), E_FIRST);
-        expands->insert(QLatin1String("last"), E_LAST);
-        expands->insert(QLatin1String("cat"), E_CAT);
-        expands->insert(QLatin1String("fromfile"), E_FROMFILE); // implementation disabled (see comment below)
-        expands->insert(QLatin1String("eval"), E_EVAL);
-        expands->insert(QLatin1String("list"), E_LIST);
-        expands->insert(QLatin1String("sprintf"), E_SPRINTF);
-        expands->insert(QLatin1String("join"), E_JOIN);
-        expands->insert(QLatin1String("split"), E_SPLIT);
-        expands->insert(QLatin1String("basename"), E_BASENAME);
-        expands->insert(QLatin1String("dirname"), E_DIRNAME);
-        expands->insert(QLatin1String("section"), E_SECTION);
-        expands->insert(QLatin1String("find"), E_FIND);
-        expands->insert(QLatin1String("system"), E_SYSTEM);
-        expands->insert(QLatin1String("unique"), E_UNIQUE);
-        expands->insert(QLatin1String("quote"), E_QUOTE);
-        expands->insert(QLatin1String("escape_expand"), E_ESCAPE_EXPAND);
-        expands->insert(QLatin1String("upper"), E_UPPER);
-        expands->insert(QLatin1String("lower"), E_LOWER);
-        expands->insert(QLatin1String("re_escape"), E_RE_ESCAPE);
-        expands->insert(QLatin1String("files"), E_FILES);
-        expands->insert(QLatin1String("prompt"), E_PROMPT); // interactive, so cannot be implemented
-        expands->insert(QLatin1String("replace"), E_REPLACE);
+    static QHash<QString, int> expands;
+    if (expands.isEmpty()) {
+        expands.insert(QLatin1String("member"), E_MEMBER);
+        expands.insert(QLatin1String("first"), E_FIRST);
+        expands.insert(QLatin1String("last"), E_LAST);
+        expands.insert(QLatin1String("cat"), E_CAT);
+        expands.insert(QLatin1String("fromfile"), E_FROMFILE); // implementation disabled (see comment below)
+        expands.insert(QLatin1String("eval"), E_EVAL);
+        expands.insert(QLatin1String("list"), E_LIST);
+        expands.insert(QLatin1String("sprintf"), E_SPRINTF);
+        expands.insert(QLatin1String("join"), E_JOIN);
+        expands.insert(QLatin1String("split"), E_SPLIT);
+        expands.insert(QLatin1String("basename"), E_BASENAME);
+        expands.insert(QLatin1String("dirname"), E_DIRNAME);
+        expands.insert(QLatin1String("section"), E_SECTION);
+        expands.insert(QLatin1String("find"), E_FIND);
+        expands.insert(QLatin1String("system"), E_SYSTEM);
+        expands.insert(QLatin1String("unique"), E_UNIQUE);
+        expands.insert(QLatin1String("quote"), E_QUOTE);
+        expands.insert(QLatin1String("escape_expand"), E_ESCAPE_EXPAND);
+        expands.insert(QLatin1String("upper"), E_UPPER);
+        expands.insert(QLatin1String("lower"), E_LOWER);
+        expands.insert(QLatin1String("re_escape"), E_RE_ESCAPE);
+        expands.insert(QLatin1String("files"), E_FILES);
+        expands.insert(QLatin1String("prompt"), E_PROMPT); // interactive, so cannot be implemented
+        expands.insert(QLatin1String("replace"), E_REPLACE);
     }
-    ExpandFunc func_t = ExpandFunc(expands->value(func.toLower()));
+    ExpandFunc func_t = ExpandFunc(expands.value(func.toLower()));
 
     QStringList ret;
 
@@ -1794,43 +1793,42 @@ ProItem::ProItemReturn ProFileEvaluator::Private::evaluateConditionalFunction(
                     T_COUNT, T_ISEMPTY, T_INCLUDE, T_LOAD, T_DEBUG, T_MESSAGE, T_IF,
                     T_FOR, T_DEFINE_TEST, T_DEFINE_REPLACE };
 
-    static QHash<QString, int> *functions = 0;
-    if (!functions) {
-        functions = new QHash<QString, int>;
-        functions->insert(QLatin1String("requires"), T_REQUIRES);
-        functions->insert(QLatin1String("greaterThan"), T_GREATERTHAN);
-        functions->insert(QLatin1String("lessThan"), T_LESSTHAN);
-        functions->insert(QLatin1String("equals"), T_EQUALS);
-        functions->insert(QLatin1String("isEqual"), T_EQUALS);
-        functions->insert(QLatin1String("exists"), T_EXISTS);
-        functions->insert(QLatin1String("export"), T_EXPORT);
-        functions->insert(QLatin1String("clear"), T_CLEAR);
-        functions->insert(QLatin1String("unset"), T_UNSET);
-        functions->insert(QLatin1String("eval"), T_EVAL);
-        functions->insert(QLatin1String("CONFIG"), T_CONFIG);
-        functions->insert(QLatin1String("if"), T_IF);
-        functions->insert(QLatin1String("isActiveConfig"), T_CONFIG);
-        functions->insert(QLatin1String("system"), T_SYSTEM);
-        functions->insert(QLatin1String("return"), T_RETURN);
-        functions->insert(QLatin1String("break"), T_BREAK);
-        functions->insert(QLatin1String("next"), T_NEXT);
-        functions->insert(QLatin1String("defined"), T_DEFINED);
-        functions->insert(QLatin1String("contains"), T_CONTAINS);
-        functions->insert(QLatin1String("infile"), T_INFILE);
-        functions->insert(QLatin1String("count"), T_COUNT);
-        functions->insert(QLatin1String("isEmpty"), T_ISEMPTY);
-        functions->insert(QLatin1String("load"), T_LOAD);         //v
-        functions->insert(QLatin1String("include"), T_INCLUDE);   //v
-        functions->insert(QLatin1String("debug"), T_DEBUG);
-        functions->insert(QLatin1String("message"), T_MESSAGE);   //v
-        functions->insert(QLatin1String("warning"), T_MESSAGE);   //v
-        functions->insert(QLatin1String("error"), T_MESSAGE);     //v
-        functions->insert(QLatin1String("for"), T_FOR);     //v
-        functions->insert(QLatin1String("defineTest"), T_DEFINE_TEST);        //v
-        functions->insert(QLatin1String("defineReplace"), T_DEFINE_REPLACE);  //v
+    static QHash<QString, int> functions;
+    if (functions.isEmpty()) {
+        functions.insert(QLatin1String("requires"), T_REQUIRES);
+        functions.insert(QLatin1String("greaterThan"), T_GREATERTHAN);
+        functions.insert(QLatin1String("lessThan"), T_LESSTHAN);
+        functions.insert(QLatin1String("equals"), T_EQUALS);
+        functions.insert(QLatin1String("isEqual"), T_EQUALS);
+        functions.insert(QLatin1String("exists"), T_EXISTS);
+        functions.insert(QLatin1String("export"), T_EXPORT);
+        functions.insert(QLatin1String("clear"), T_CLEAR);
+        functions.insert(QLatin1String("unset"), T_UNSET);
+        functions.insert(QLatin1String("eval"), T_EVAL);
+        functions.insert(QLatin1String("CONFIG"), T_CONFIG);
+        functions.insert(QLatin1String("if"), T_IF);
+        functions.insert(QLatin1String("isActiveConfig"), T_CONFIG);
+        functions.insert(QLatin1String("system"), T_SYSTEM);
+        functions.insert(QLatin1String("return"), T_RETURN);
+        functions.insert(QLatin1String("break"), T_BREAK);
+        functions.insert(QLatin1String("next"), T_NEXT);
+        functions.insert(QLatin1String("defined"), T_DEFINED);
+        functions.insert(QLatin1String("contains"), T_CONTAINS);
+        functions.insert(QLatin1String("infile"), T_INFILE);
+        functions.insert(QLatin1String("count"), T_COUNT);
+        functions.insert(QLatin1String("isEmpty"), T_ISEMPTY);
+        functions.insert(QLatin1String("load"), T_LOAD);         //v
+        functions.insert(QLatin1String("include"), T_INCLUDE);   //v
+        functions.insert(QLatin1String("debug"), T_DEBUG);
+        functions.insert(QLatin1String("message"), T_MESSAGE);   //v
+        functions.insert(QLatin1String("warning"), T_MESSAGE);   //v
+        functions.insert(QLatin1String("error"), T_MESSAGE);     //v
+        functions.insert(QLatin1String("for"), T_FOR);     //v
+        functions.insert(QLatin1String("defineTest"), T_DEFINE_TEST);        //v
+        functions.insert(QLatin1String("defineReplace"), T_DEFINE_REPLACE);  //v
     }
 
-    TestFunc func_t = (TestFunc)functions->value(function);
+    TestFunc func_t = (TestFunc)functions.value(function);
 
     switch (func_t) {
         case T_DEFINE_TEST: