 		}
 		
 		protected function onSuiteCompleted():void {
+			timer.removeEventListener(TimerEvent.TIMER, runNextTest);
 			dispatchEvent(new Event(Event.COMPLETE));
 		}
 				

		
		public function SuiteRunner() {
			timer = new Timer(0, 1);
			timer.addEventListener(TimerEvent.TIMER, runNextTest);
		}
		
		public function run(suite:Class, result:IResult = null):void {
			this.result = result || new Result();
			testRunner = new TestRunner();
			testRunner.addEventListener(Event.COMPLETE, onTestCompleted);
			testClasses = new SuiteIterator(suite);
			
			runNextTest();
		}

﻿package asunit4.runners
{
	import asunit4.framework.IResult;
	import asunit4.framework.SuiteIterator;

	import flash.events.Event;
