 			
 			hookCaptureHandler(methodName, parameters, query);
 
-			if ([null, Array, String, Number, int, uint].indexOf(returnType) < 0)
+			if ([null, Array, String, Number].indexOf(returnType) < 0)
 			{
 				castedQuery = query.then(WeaveDataServlet.castResult.bind(this, returnType));
+			}
+			else
+			{
+				castedQuery = query;
 			}
 
 			castedQuery.then(hookHandler.bind(this, methodName, parameters), alertFault.bind(this, methodName, parameters, query));

		private var queue:AsyncInvocationQueue;
		private var adminService:AMF3Servlet;
		private var dataService:AMF3Servlet;
		private var propertyNameLookup:Object = new JS.Map(); // Function -> String
		private var methodHooks:Object = {}; // methodName -> Array (of MethodHook)
        /*Bindable*/ public var initialized:Boolean = false;
		/*Bindable*/ public var migrationProgress:String = '';

		 */		
		private function invokeAdmin(method:Function, parameters:Array, queued:Boolean = true, returnType:Class = null):WeavePromise/*/<any>/*/
		{
			var methodName:String = getMethodName(method);
			if (!methodName)
				throw new Error("method must be a member of WeaveAdminService");
			return generateQuery(adminService, methodName, parameters, queued, returnType);
