anchor.diff:  			{
   				//In order to create a proxy to the real method call, we need to first copy the real method to a proxy method
   				finalSubObject["_#mockFunctionName#"] = finalSubObject[mockFunctionName];
  -
  +				//Then we need to delete the real method because we need to use onMissingMethod to tell what function is being called at runtime
  +				structDelete(finalSubObject,mockFunctionName);
   			}
   			else if(structKeyExists(finalSubObject,"onMissingMethod"))
   			{
  
positive.code: 						if(resultType IS NOT returnType)
  						{
  							var collaboratorClass = getMetaData(this).fullname;
  							throw(message="The collaborator return value from #local.collaboratorClass# did not match its specification. It should have returned #variables.specContext.context.then.returns# but returned #resultType#. The tested specification was: #variables.specContext.functionName# #variables.specContext.contextName#");
  						}
  														
  					}
  					if(structKeyExists(variables.specContext.context.then,"assert"))
  					{
  
  						var assert = variables.specContext.context.then.assert;
  						
  						for(var i=1; i LTE arrayLen(assert); i =i+1)
  						{
  
negative.code: 			//Set the spec into the object as we need to pass in these values so that we can use them when proxying to the real function call
  			subObject.setSpecContext = function(spec,mockFunctionName,mockContextName){
  				//writeDump(var=arguments,label="setSpecContext #request.dumpc#");
  				variables.specContext[arguments.mockFunctionName] = {
  					functionName:arguments.mockFunctionName,
  					contextName:arguments.mockContextName,
  					context:spec.tests[mockfunctionName]["#mockContextName#"]
  