         update();
     }
 
-	//--------------------------------------------------------------------------
+    private function docFrameListener(event:Event):void
+    {
+        if (currentFrame == 2)
+        {
+            removeEventListener(Event.ENTER_FRAME, docFrameListener);
+            if (totalFrames > 2)
+                addEventListener(Event.ENTER_FRAME, extraFrameListener);
+            
+            docFrameHandler();
+        }
+    }
+    
+    private function extraFrameListener(event:Event):void
+    {
+        if (lastFrame == currentFrame)
+            return;
+        
+        lastFrame = currentFrame;
+        
+        if (currentFrame + 1 > totalFrames)
+            removeEventListener(Event.ENTER_FRAME, extraFrameListener);
+        
+        extraFrameHandler();
+    }
+
+    //--------------------------------------------------------------------------
 	//
 	//  Variables
 	//

	 *  @private
	 */
	private var timer:Timer = null;
    /**
	 *  @private
	 */


	    var docFrame:int = totalFrames == 1 ? 0 : 1;

        addEventListener(Event.ENTER_FRAME, docFrameListener);

		timer = new Timer(100);
		timer.addEventListener(TimerEvent.TIMER, timerHandler);
