         if (!autoPlay && autoDisplayFirstFrame)
             load();
         
-        
         videoPlayer.element = videoElement;
+        
+        // if our source is null, let's invalidateSize() here.
+        // if it's a bad source, we'll get a playbackError and invalidate
+        // the size down there.  If it's a good source, we'll get a 
+        // dimensionChange event and invalidate the size in there.
+        if (source == null)
+            invalidateSize();
     }
     
     /**

    {
        // wait until we can mute, play(), pause(), and seek() before doing anything.
        // We should be able to do all of these operations on the READY state change event.
        videoPlayer.addEventListener(MediaPlayerStateChangeEvent.MEDIA_PLAYER_STATE_CHANGE, videoPlayer_mediaPlayerStateChangeHandler);
    }
    
    //--------------------------------------------------------------------------

        videoPlayer.addEventListener(AudioEvent.MUTED_CHANGE, videoPlayer_mutedChangeHandler);
        
        // public events
        videoPlayer.addEventListener(MediaPlayerStateChangeEvent.MEDIA_PLAYER_STATE_CHANGE, videoPlayer_mediaPlayerStateChangeHandler);
        videoPlayer.addEventListener(TimeEvent.CURRENT_TIME_CHANGE, dispatchEvent);
        videoPlayer.addEventListener(LoadEvent.BYTES_LOADED_CHANGE, dispatchEvent);
        videoPlayer.addEventListener(TimeEvent.DURATION_CHANGE, dispatchEvent);
