 		public static var debug_callLater:Boolean = false; // set this to true to delay async tasks
 		public var averageFrameTime:int = 0;
 		
+		private var pauseForGCIfCollectionImminent:Function = null;
 		private const frameTimes:Array = [];
 		private const _stackTraceMap:Dictionary = new Dictionary(true); // used by callLater to remember stack traces
 		private const _taskElapsedTime:Dictionary = new Dictionary(true);

	import flash.events.TimerEvent;
	import flash.geom.Point;
	import flash.utils.Dictionary;
	import flash.utils.getTimer;
	
	import mx.core.UIComponentGlobals;

	{
		public function StageUtils()
		{
			try {
				this.pauseForGCIfCollectionImminent = getDefinitionByName('flash.system.System')["pauseForGCIfCollectionImminent"];
			} catch (e:Error) { }
			
			eventManager.throttledMouseMoveInterval = maxComputationTimePerFrame;
			addEventCallback(Event.ENTER_FRAME, null, handleCallLater);
			addEventCallback(Event.RENDER, null, handleCallLater);
