 	{
 		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);

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

		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);
