      */
     public function play():void
     {
+        // close old video if it was open
+        if (sourceLastPlayed != null && sourceLastPlayed != this.source)
+        {
+            videoPlayer.close();
+            videoPlayer.clear();
+        }
+        
         // check for 2 cases: streaming video or progressive download
         if (source is StreamingVideoSource)
         {

            // stream where it was paused, one needs to call play(null).
            if (sourceLastPlayed == this.source)
            {
                sourceString = null;
            }
            else
            {
                if (sourceLastPlayed != null)
                {
                    videoPlayer.close();
                    videoPlayer.clear();
                }
                
                sourceString = String(this.source);
                sourceLastPlayed = sourceString;
            }

    public function set volume(value:Number):void
    {
        mutedVolume = -1;
        videoPlayer.volume = value;
        dispatchEvent(new Event("volumeChanged"));
    }
    
