             pause();
         else
             play();
+        
+        // need to synch up to what we've actually got because sometimes 
+        // the play() didn't actually play() because there's no source 
+        // or we're in an error state
+        playPauseButton.selected = playing;
     }
     
     /**

        
        scrubBar.bufferedStart = 0;
        
        if (videoDisplay.bytesTotal == 0)
            scrubBar.bufferedEnd = 0;
        else
            scrubBar.bufferedEnd = (videoDisplay.bytesLoaded/videoDisplay.bytesTotal)*videoDisplay.duration;

            return videoDisplay.duration;
        else
            return 0;
    }
    
    //----------------------------------
    //  videoObject
    //----------------------------------
    
    [Inspectable(category="General", defaultValue="null")]
    
    /**
     *  @copy spark.components.VideoDisplay#videoObject
     * 
     *  @default null
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get videoObject():Video
    {
        if (videoDisplay)
            return videoDisplay.videoObject;
        else
            return null;
    }
    
    //----------------------------------
