      */
     public function set autoPlay(value:Boolean):void
     {
-        if (_autoPlay == value)
+        if (autoPlay == value)
             return;
         
         _autoPlay = value;
-    }
-    
-    /**
-     *  @private
-     *  Whether we should be playing or not
-     */
-    private function get effectivePlay():Boolean
-    {
-        return playWhenHidden || (visible && _isOnDisplayList && enabled && _parentVisibility);
-    }
-    
-    /**
-     *  @private
-     *  Whether we should autoPlay or not
-     */
-    private function get effectiveAutoPlay():Boolean
-    {
-        return autoPlay && effectivePlay;
+        effectiveAutoPlayChanged(false);
+    }
+    
+    // FIXME (rfrishbe): Copy this behavior correctly from the spark checked-in versions
+    private function effectiveAutoPlayChanged(takeAction:Boolean):void
+    {
+        if (!playWhenHidden)
+        {
+            var shouldBePlaying:Boolean = visible && _isOnDisplayList && enabled && _parentVisibility;
+            
+            if (shouldBePlaying)
+            {
+                if (!playing && takeAction && videoPlayer.playable)
+                    play(); 
+            }
+            else
+            {
+                if (playing && takeAction && videoPlayer.playable)
+                    pause();
+            }
+            
+            if (videoPlayer)
+                videoPlayer.autoPlay = shouldBePlaying && autoPlay;
+        }
     }
     
     //----------------------------------

//
///////////////////////////////////////////////////////////////////////////////

package spark.primitives
{

// FIXME (rfrishbe): Change package name and classname

import fl.video.DynamicStreamItem;
import fl.video.MetadataEvent;
import fl.video.NCManagerDynamicStream;
import fl.video.VideoError;
import fl.video.VideoEvent;
import fl.video.VideoPlayer;
import fl.video.VideoScaleMode;
import fl.video.VideoState;
import fl.video.flvplayback_internal;

import flash.events.Event;
import flash.events.ProgressEvent;
import flash.media.Video;

import mx.core.UIComponent;
import mx.core.mx_internal;

import spark.components.Group;
import spark.components.mediaClasses.StreamItem;
import spark.components.mediaClasses.StreamingVideoSource;
import spark.events.VideoEvent;

use namespace mx_internal;


    
    private var _source:Object;
    private var sourceChanged:Boolean;
        
    [Bindable("sourceChanged")]
    [Inspectable(category="General", defaultValue="null")]
    
