         if (!initializedOnce)
             return;
         
+        // if source is null or in a bad connection state, don't do anything
         if (source == null || videoPlayer.state == VideoState.CONNECTION_ERROR)
+            return;
+        
+        // if have a thumbnailSource, no method calls are valid
+        if (thumbnailSource)
             return;
         
         setPlaying(false);

    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void
    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);
        
        var flvPlayer:VideoPlayer = videoPlayer;
        

    {
        super.measure();
        
        // if showing the thumbnail, just use the thumbnail's size
        if (thumbnailSource && thumbnailGroup)
        {
            measuredWidth = thumbnailGroup.getPreferredBoundsWidth();
            measuredHeight = thumbnailGroup.getPreferredBoundsHeight();
            return;
        }
        
        // otherwise grab the width/height from the video
        var vw:Number = videoPlayer.videoWidth;
        var vh:Number = videoPlayer.videoHeight;
        
