 		 */
 		public function update():void
 		{
-			if (!frameLast) frameLast = getTimer();
+			// timing stuff
+			var t:Number = getTimer();
+			if (!_frameLast) _frameLast = t;
+			
+			// update loop
 			if (FP._world.active)
 			{
 				if (FP._world._tween) FP._world.updateTweens();
 				FP._world.update();
 			}
-			frameListSum += (frameList[frameList.length] = getTimer() - frameLast);
-			if (frameList.length > 10) frameListSum -= frameList.shift();
-			FP.frameRate = 1000 / (frameListSum / frameList.length);
-			frameLast = getTimer();
+			FP._world.updateLists();
+			if (FP._goto) checkWorld();
+			
+			// more timing stuff
+			t = getTimer();
+			_frameListSum += (_frameList[_frameList.length] = t - _frameLast);
+			if (_frameList.length > 10) _frameListSum -= _frameList.shift();
+			FP.frameRate = 1000 / (_frameListSum / _frameList.length);
+			_frameLast = t;
 		}
 		
 		/**

			// quit if a frame hasn't passed
			if (_delta < _rate) return;
			
			// update the game
			if (_delta > _skip) _delta = _skip;
			while (_delta > _rate)
			{
				// update timer
				_delta -= _rate;
				_time = getTimer();
				FP.elapsed = (_time - _prev) / 1000;
				_prev = _time;
				
				// apply timescale
				if (FP.elapsed > MAX_ELAPSED) FP.elapsed = MAX_ELAPSED;
				FP.elapsed *= FP.rate;
				
				// update loop
				update();
				
				// update entity lists
				FP._world.updateLists();
				
				// update input
				Input.update();
				
				// switch worlds
				if (FP._goto) switchWorld();
			}
			
			// swap buffers
			FP.screen.swap();
			
			// reset drawing target
			Draw.resetTarget();
			
			// render loop
			render();
			
			// redraw buffers
			FP.screen.redraw();
		}
		
		/** @private Switch Worlds if they've changed. */
		private function switchWorld():void
		{
			if (!FP._goto) return;
			FP._world.end();

	public class Engine extends MovieClip
	{
		/**
		 * If the game should stop updating/rendering.
		 */
		public var paused:Boolean = false;
		
		/**
		 * Constructor. Defines startup information about your game.
		 * @param	width			The width of your game.
		 * @param	height			The height of your game.
