 						var allContexts:Array = triggerEntry.context as Array;
 						// remove the contexts that have been disposed of.
 						for (var i:int = 0; i < allContexts.length; i++)
-						{
-							var context:Object = allContexts[i];
-							// if there is a null context, it means the callback should never be removed.
-							if (context != null && WeaveAPI.SessionManager.objectWasDisposed(context))
+							if (WeaveAPI.SessionManager.objectWasDisposed(allContexts[i]))
 								allContexts.splice(i--, 1);
-						}
 						// if there are no more relevant contexts for this callback, don't run it.
 						if (allContexts.length == 0)
 						{

		public static var debug:Boolean = false;
		internal var _linkableObject:ILinkableObject; // for debugging only... will be set when debug==true
		private var _lastTriggerStackTrace:String; // for debugging only... will be set when debug==true

		/**
		 * If specified, the preCallback function will be called immediately before running each callback.

		public function dispose():void
		{
			// remove all callbacks
			if (debug)
				_oldEntries = _oldEntries ? _oldEntries.concat(_callbackEntries) : _callbackEntries.concat();
			_callbackEntries.length = 0;
			_wasDisposed = true;
			
