 				}
 				
 				// set event variables
+				if (_event != null)
+					reportError(StandardLib.substitute(
+						'StageUtils: Upon handling an event, the _event variable was non-null.'
+						+ ' (event.type == "{0}", _event.type == "{1}").'
+						+ ' This should not happen unless the previous event callback threw an error.',
+						event.type,
+						_event.type
+					));
 				_event = event;
 				_eventTime = getTimer();
 				

			// The variables countdown and lastPriority are used to avoid running newly-added tasks immediately.
			// This avoids wasting time on async tasks that do nothing and return early, adding themselves back to the queue.

			var args:Array, args2:Array;
			var stackTrace:String;
			var now:int;
			var allStop:int = _currentFrameStartTime + maxComputationTime;

		private function handleCallLater():void
		{
			var maxComputationTime:uint = _deactivatedFrameRate ? _deactivatedMaxComputationTimePerFrame : maxComputationTimePerFrame;
			if (!_event)
			{
				reportError("StageUtils.handleCallLater(): _event is null. This should never happen.");
				return;
			}
			if (_event.type == Event.ENTER_FRAME)
			{
				resetDebugTime();
