 </cffunction>
 
 <cffunction name="$dbinfo" returntype="any" access="public" output="false">
-	<cfset var loc = StructNew()>
+	<cfset var loc = {}>
 	<cfset arguments.name = "loc.returnValue">
 	<!--- we have to use this cfif here to get around a bug with railo --->
 	<cfif StructKeyExists(arguments, "table")>

	<cfargument name="conditionArgs" type="struct" required="false" default="#StructNew()#">
	<cfargument name="executeArgs" type="struct" required="false" default="#StructNew()#">
	<cfargument name="timeout" type="numeric" required="false" default="30">
	<cfset var loc = StructNew()>
	<cfset loc.returnValue = $invoke(method=arguments.condition, argumentCollection=arguments.conditionArgs)>
	<cfif IsBoolean(loc.returnValue) AND NOT loc.returnValue>
		<cflock name="#arguments.name#" timeout="#arguments.timeout#">


<cffunction name="$include" returntype="void" access="public" output="false">
	<cfargument name="template" type="string" required="true">
	<cfset var loc = {}>
	<cfinclude template="../../#LCase(arguments.template)#">
</cffunction>

<cffunction name="$includeAndOutput" returntype="void" access="public" output="true">
	<cfargument name="template" type="string" required="true">
	<cfset var loc = {}>
	<cfinclude template="../../#LCase(arguments.template)#">
</cffunction>

<cffunction name="$includeAndReturnOutput" returntype="string" access="public" output="false">
	<cfargument name="template" type="string" required="true">
	<cfset var loc = {}>
	<!--- we prefix returnValue with $ here to make sure the variable does not get overwritten in the included template --->
	<cfsavecontent variable="loc.$returnValue"><cfinclude template="../../#LCase(arguments.template)#"></cfsavecontent>
	<cfreturn loc.$returnValue>
</cffunction>

<cffunction name="$directory" returntype="any" access="public" output="false">
