 			if (currentTest.hasOwnProperty('setUp'))
 				currentTest.setUp();
 			
-			runMethodForTest(method, currentTest, currentMethodName, result);
+			try {
+				method();
+			}
+			catch (error:Error) {
+				recordFailure(error);
+			}
 			
 			var commands:Array = Async.instance.getCommandsForTest(currentTest);
 			if (commands && commands.length) {

			}
		}
		
		protected static function runMethodForTest(method:Function, test:Object, testMethodName:String, result:FreeTestResult):void {
			try {
				method();
			}
			catch (error:Error) {
				result.addFailure(new FreeTestFailure(test, testMethodName, error));
			}
		}
		
		protected function onCompleted():void {

		
		protected function onAsyncMethodCalled(e:Event):void {
			var command:TimeoutCommand = TimeoutCommand(e.currentTarget);
			try {
				command.execute();
			}
			catch (error:Error) {
				recordFailure(error);
			}
			onAsyncMethodCompleted(e);
		}
		
