 		
 		protected function onAsyncMethodCalled(e:Event):void {
 			var command:TimeoutCommand = TimeoutCommand(e.currentTarget);
-			runMethodForTest(command.execute, currentTest, currentMethodName, result);
+			try {
+				command.execute();
+			}
+			catch (error:Error) {
+				recordFailure(error);
+			}
 			onAsyncMethodCompleted(e);
 		}
 		

			if (currentTest.hasOwnProperty('setUp'))
				currentTest.setUp();
			
			runMethodForTest(method, currentTest, currentMethodName, result);
			
			var commands:Array = Async.instance.getCommandsForTest(currentTest);
			if (commands && commands.length) {

			}
		}
		
		protected function recordFailure(error:Error):void {
			result.addFailure(new FreeTestFailure(currentTest, currentMethodName, error));
		}
		
		protected function onCompleted():void {
