 		private static const CONTEXT_PLACEHOLDER:Object = {};
 		
 		/**
-		 * True while handling grouped callbacks.
-		 */
-		private static var _handlingGroupedCallbacks:Boolean = false;
-		
-		/**
-		 * True while handling grouped callbacks called recursively from other grouped callbacks.
-		 */
-		private static var _handlingRecursiveGroupedCallbacks:Boolean = false;
-		
-		/**
 		 * This gets set to true when the static _handleGroupedCallbacks() callback has been added as a frame listener.
 		 */
 		private static var _initialized:Boolean = false;

		 */
		public function trigger():void
		{
			// if handling recursive callbacks, call now
			if (_handlingRecursiveGroupedCallbacks)
			{
				handleGroupedCallback();
			}
			else if (!triggered)
			{
				// not previously triggered
				_triggeredEntries.push(this);
				triggered = true;
			}
			else if (_handlingGroupedCallbacks)
			{
				// triggered recursively - call later
				triggeredAgain = true;
			}
		}
		
		/**

		{
			var i:int;
			var entry:GroupedCallbackEntry;
		
			// Handle grouped callbacks in the order they were triggered,
			// anticipating that more may be added to the end of the list in the process.
			for (i = 0; i < _triggeredEntries.length; i++)
			{
				entry = _triggeredEntries[i];
				entry.handleGroupedCallback();
			}
			
			// Make a second pass to handle grouped callbacks that were triggered recursively.
			// Note that this list does not contain duplicates and we only make two passes, so it may be possible
			// for an earlier entry to be triggered twice but only handled once.
			for (i = 0; i < _triggeredEntries.length; i++)
			{
				entry = _triggeredEntries[i];
				if (entry.triggeredAgain)
					entry.handleGroupedCallback();
			}
			
			// reset triggered entries for next frame
			for each (entry in _triggeredEntries)
				entry.triggered = entry.triggeredAgain = false;
			_triggeredEntries.length = 0;
