 					{
 						// Remove the callback by setting the function pointer to null.
 						// This is done instead of removing the entry because we may be looping over the _callbackEntries Array right now.
-						entry.context = null;
-						entry.callback = null;
-						if (debug)
-							entry.removeCallback_stackTrace = new Error(STACK_TRACE_REMOVE).getStackTrace();
+						entry.dispose();
 					}
 				}
 			}

						shouldRemoveEntry = WeaveAPI.SessionManager.objectWasDisposed(entry.context);
					if (shouldRemoveEntry)
					{
						if (debug && entry.callback != null)
							entry.removeCallback_stackTrace = new Error(STACK_TRACE_REMOVE).getStackTrace();
						// help the garbage-collector a bit
						entry.context = null;
						entry.callback = null;
						// remove the empty callback reference from the list
						var removed:Array = _callbackEntries.splice(i--, 1); // decrease i because remaining entries have shifted
						if (debug)

	 */
	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.
