             videoElement.removeEventListener(spark.events.VideoEvent.READY, dispatchEvent);
             videoElement.removeEventListener(fl.video.VideoEvent.STATE_CHANGE, videoElement_stateChangeHandler);
             videoElement.removeEventListener("playingChanged", videoElement_playingChangedHandler);
+            videoElement.removeEventListener("playheadTimeChanged", videoElement_playHeadChangedHandler);
+            videoElement.removeEventListener("totalTimeChanged", videoElement_totalTimeChangedHandler);
             
             // just strictly for binding purposes
-            videoElement.removeEventListener("autoRewound", videoElement_autoRewoundHandler);
             videoElement.removeEventListener("sourceChanged", dispatchEvent);
             videoElement.removeEventListener("volumeChanged", videoElement_volumeChangedHandler);
         }

     */
    protected function formatTimeValue(value:Number):String
    {
        // default format: hours:minutes:seconds
        var hours:uint = Math.floor(value/3600) % 24;
        var minutes:uint = Math.floor(value/60) % 60;

        if (!scrubBarMouseCaptured && !scrubBarChanging)
        {
            scrubBar.minimum = 0;
            scrubBar.maximum = isNaN(videoElement.totalTime) ? 0 : videoElement.totalTime;
            scrubBar.value = isNaN(videoElement.playheadTime) ? 0 : videoElement.playheadTime;
        }
        
        if (scrubBar is VideoPlayerScrubBar)
