 	 */
 	public function handleGroupedCallback():void
 	{
+		if (!context)
+			return;
+		
 		// first, make sure there is at least one relevant context for this callback.
 		var allContexts:Array = context as Array;
 		// remove the contexts that have been disposed of.

	/**
	 * This function gets called once per frame and allows grouped callbacks to run.
	 */
	public static function _handleGroupedCallbacks():void
	{
		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 (var i:int = 0; i < _triggeredEntries.length; i++)
		{
			entry = _triggeredEntries[i] as GroupedCallbackEntry;
			entry.handleGroupedCallback();
		}
		
		// reset for next frame
		for each (entry in _triggeredEntries)
			entry.triggered = false;
		_triggeredEntries.length = 0;
	}
	
	/**
	 * This gets set to true when the static _handleGroupedCallbacks() callback has been added as a frame listener.

	public var triggered:Boolean = false;
	
	/**
	 * If true, the callback was triggered again from another grouped callback.
	 */
	public var triggeredAgain:Boolean = false;
	
	/**
	 * Marks the entry to be handled later (unless already triggered this frame).
	 * This also takes care of preventing recursion.
	 */
	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;
		}
	}
	
	/**
