 			request.wheels[arguments.handle].totalRecords = loc.totalRecords;
 		}
 
-		if (!StructKeyExists(loc, "returnValue"))
+		if (StructKeyExists(loc, "returnValue") && !Len(loc.returnValue))
+		{
+			if (arguments.returnAs == "query")
+				loc.returnValue = QueryNew("");
+			else if (arguments.returnAs == "object")
+				loc.returnValue = false;
+			else if (arguments.returnAs == "objects")
+				loc.returnValue = ArrayNew(1);
+		}
+		else if (!StructKeyExists(loc, "returnValue"))
 		{
 			// make the where clause generic for use in caching
 			loc.originalWhere = arguments.where;

			if (loc.totalRecords == 0)
			{
				loc.totalPages = 0;
				loc.returnValue = QueryNew("");
			}
			else
			{

				loc.values = findAll($limit=loc.limit, $offset=loc.offset, select=variables.wheels.class.keys, where=arguments.where, order=arguments.order, include=arguments.include, reload=arguments.reload, cache=arguments.cache, distinct=loc.distinct);
				if (!loc.values.recordCount)
				{
					loc.returnValue = "";
				}
				else
				{
