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

            videoElement.addEventListener(spark.events.VideoEvent.READY, dispatchEvent);
            videoElement.addEventListener(fl.video.VideoEvent.STATE_CHANGE, videoElement_stateChangeHandler);
            videoElement.addEventListener("playingChanged", videoElement_playingChangedHandler);
            
            // just strictly for binding purposes
            videoElement.addEventListener("autoRewound", videoElement_autoRewoundHandler);
            videoElement.addEventListener("sourceChanged", dispatchEvent);
            videoElement.addEventListener("volumeChanged", videoElement_volumeChangedHandler);
            

    /**
     *  @private
     */
    private function videoElement_playHeadChangedHandler(event:Event):void
    {
        updateScrubBar();
        
        if (playheadTimeLabel)
            updatePlayheadTime();
        
        // for binding purposes
        dispatchEvent(event);
    }
    
    /**
     *  @private
     */
    private function videoElement_totalTimeChangedHandler(event:Event):void
    {
        updateScrubBar();
        
        if (totalTimeLabel)
            updateTotalTime();
        
        // for binding purposes
        dispatchEvent(event);
    }
    
