 						shouldRemoveEntry = WeaveAPI.SessionManager.objectWasDisposed(entry.context);
 					if (shouldRemoveEntry)
 					{
-						entry.dispose();
+						Weave.dispose(entry);
 						// remove the empty callback reference from the list
 						var removed:Array = _callbackEntries.splice(i--, 1); // decrease i because remaining entries have shifted
 						if (WeaveAPI.debugAsyncStack)

			if (WeaveAPI.debugAsyncStack)
				_oldEntries = _oldEntries ? _oldEntries.concat(_callbackEntries) : _callbackEntries.concat();
			for each (entry in _callbackEntries)
				entry.dispose();
			_callbackEntries.length = 0;
			_wasDisposed = true;
			

					{
						// 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.
						Weave.dispose(entry);
					}
				}
			}
