diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index 851b094fcf0011c5bb1a49db172642fef7ad51a4..c9189834b596e98d9a40ab8be3e5f838f704e281 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -826,17 +826,34 @@ SqlBuilder.prototype._addWhereSubquery = function(pSubquery, pMandatory, pCondit
  */
 SqlBuilder.prototype._addWhere = function(pFieldOrCond, pValue, pMandatory, pCondition, pFieldType, pAddPreparedConditionCallback)
 {
-    pCondition = this._verifyConditionFormat(pCondition);
-
     if (!this._where._whereWasCalled)
         throw SqlBuilder._ERROR_WHERE_NOT_FIRST();
-    
+
     //skip if no values are provided and mandatory is false
     if (!pMandatory && pFieldOrCond === undefined && pValue === undefined && pCondition === undefined && pFieldType === undefined)
         return this;
 
     if (pFieldOrCond === undefined && pValue === undefined && pCondition === undefined && pFieldType === undefined)
         throw SqlBuilder._ERROR_NO_PARAMETER_PROVIDED();
+    
+    //In a special case, pCondition can be a function. It will be called with the alias as argument and
+    //must return an array of the condition string and (optionally) the required sql field type.
+    //alternatively the function may return a string only to make the usage more bulletproof and convenient, so both SqlBuilder.EQUAL() 
+    //and SqlBuilder.EQUAL work equally 
+    if (typeof pCondition === "function")
+    {
+        var resCond = pCondition(this.alias);
+        if (Array.isArray(resCond))
+        {
+            pCondition = resCond[0];
+            pFieldType = pFieldType || resCond[1];
+        }
+        else if(Utils.isString(pCondition))
+        {
+            pCondition = resCond;
+        }
+    }
+    this._verifyConditionFormat(pCondition);
  
     // Special case: if only pFieldOrCond is set and we can identify it as a valid field-string (e.g. "Table.Field") we assume that it is not just a condition string.
     // --> we can check pValue for undefined and also allow simple string-conditions
@@ -992,32 +1009,13 @@ SqlBuilder.prototype._addWhere = function(pFieldOrCond, pValue, pMandatory, pCon
  * helper function that checks if the format of a condition is valid
  * 
  * @param {String} pCondition   condition
- * @return {String} the given condition, if the format is correct
  * @throws when the format is invalid
  */
 SqlBuilder.prototype._verifyConditionFormat = function (pCondition)
 {
     if (!pCondition)
     {
-        return pCondition;
-    }
-    
-    //In a special case, pCondition can be a function. It will be called with the alias as argument and
-    //must return an array of the condition string and (optionally) the required sql field type.
-    //alternatively the function may return a string only to make the usage more bulletproof and convenient, so both SqlBuilder.EQUAL() 
-    //and SqlBuilder.EQUAL work equally 
-    if (typeof pCondition === "function")
-    {
-        var resCond = pCondition(this.alias);
-        if (Array.isArray(resCond))
-        {
-            pCondition = resCond[0];
-            pFieldType = pFieldType || resCond[1];
-        }
-        else if(Utils.isString(pCondition))
-        {
-            pCondition = resCond;
-        }
+        return;
     }
     
     // replace by {@NUMBERSIGN@} / {@QUESTIONSIGN@} as the js-regexp cannot do lookbehind (needed by the regexp used in replaceConditionTemplate to check escapes)
@@ -1037,8 +1035,6 @@ SqlBuilder.prototype._verifyConditionFormat = function (pCondition)
     {
         throw SqlBuilder._ERROR_CONDITION_WRONG_FORMAT();
     }
-    
-    return pCondition;
 }
 
 /**