 </cffunction>
 
 <cffunction name="$invoke" returntype="any" access="public" output="false">
-	<cfset var loc = StructNew()>
+	<cfset var loc = {}>
 	<cfset arguments.returnVariable = "loc.returnValue">
 	<cfinvoke attributeCollection="#arguments#">
 	<cfif StructKeyExists(loc, "returnValue")>

	<cfargument name="execute" type="string" required="true">
	<cfargument name="executeArgs" type="struct" required="false" default="#StructNew()#">
	<cfargument name="timeout" type="numeric" required="false" default="30">
	<cfset var loc = StructNew()>
	<cfset loc.lockArgs = Duplicate(arguments)>
	<cfset StructDelete(loc.lockArgs, "execute")>
	<cfset StructDelete(loc.lockArgs, "executeArgs")>

	<cfargument name="method" type="string" required="true">
	<cfargument name="args" type="struct" required="false" default="#StructNew()#">
	<cfargument name="timeout" type="numeric" required="false" default="30">
	<cfset var loc = {}>
	<cflock name="#arguments.name#" type="readonly" timeout="#arguments.timeout#">
		<cfset loc.returnValue = $invoke(component=arguments.object, method=arguments.method, argumentCollection=arguments.args)>
	</cflock>
