 			var pStart:int = getTimer();
 			var pAlloc:int = int(_priorityAllocatedTimes[_activePriority]);
 			var pElapsed:int = int(_priorityElapsedTimes[_activePriority]);
-			var pStop:int = Math.min(allStop, pStart + pAlloc - pElapsed);
+			var pStop:int = Math.min(allStop, pStart + pAlloc - pElapsed); // account for overtime from previous frame
 			queue = _priorityCallLaterQueues[_activePriority] as Array;
 			countdown = queue.length;
 			while (true)

				now = getTimer();
				if (countdown == 0 || now > pStop)
				{
					// keep track of elapsed time for this priority
					pElapsed += now - pStart;
					_priorityElapsedTimes[_activePriority] = pElapsed;
					
					// if max computation time was reached for this frame or we have visited all priorities, stop now
					if (now > allStop || _activePriority == lastPriority)

					// stop if no more entries
					if (remaining == 0)
						break;
					
					// switch to next priority
					_activePriority++;
