 
 <cffunction name="$validatePresenceOf" returntype="void" access="public" output="false">
 	<cfscript>
+		if (!$evaluateValidationCondition(argumentCollection=arguments))
+			return;
 		if (!StructKeyExists(this, arguments.property) || !Len(this[arguments.property]))
 			addError(property=arguments.property, message=arguments.message);
 	</cfscript>

			loc.args.message = Replace(arguments.message, "[property]", humanize(loc.args.property));
			loc.args.allowBlank = arguments.allowBlank;
			loc.args.onlyInteger = arguments.onlyInteger;
			$registerValidation(arguments.when, "$validateNumericalityOf", Duplicate(loc.args));
		}
	</cfscript>

			addError(property=arguments.property, message=arguments.message);
	</cfscript>
</cffunction>

<!--- 
evaluates the condition to determine if the validation should be executed
 --->
<cffunction name="$evaluateValidationCondition">
	<cfif structkeyexists(arguments, "condition") and len(arguments.condition)>
		<cfreturn evaluate(arguments.condition)>
	</cfif>
	<cfreturn true>
</cffunction>