         else
         {
             videoElementProperties = {autoRewind: value};
+        }
+    }
+    
+    //----------------------------------
+    //  loop
+    //----------------------------------
+    
+    [Inspectable(Category="General", defaultValue="false")]
+    
+    /**
+     *  @copy spark.primitives.VideoElement#loop
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get loop():Boolean
+    {
+        if (videoElement)
+        {
+            return videoElement.loop;
+        }
+        else
+        {
+            var v:* = videoElementProperties.loop;
+            return (v === undefined) ? false : v;
+        }
+    }
+    
+    /**
+     *  @private
+     */
+    public function set loop(value:Boolean):void
+    {
+        if (videoElement)
+        {
+            videoElement.loop = value;
+            videoElementProperties = BitFlagUtil.update(videoElementProperties as uint, 
+                LOOP_PROPERTY_FLAG, true);
+        }
+        else if (videoElementProperties)
+        {
+            videoElementProperties.loop = value;
+        }
+        else
+        {
+            videoElementProperties = {loop: value};
         }
     }
     

    /**
     *  @private
     */
    private static const MAINTAIN_ASPECT_RATIO_PROPERTY_FLAG:uint = 1 << 2;
    
    /**
     *  @private
     */
    private static const MUTED_PROPERTY_FLAG:uint = 1 << 3;
    
    /**
     *  @private
     */
    private static const SOURCE_PROPERTY_FLAG:uint = 1 << 4;
    
    /**
     *  @private
     */
    private static const VOLUME_PROPERTY_FLAG:uint = 1 << 5;
    
    //--------------------------------------------------------------------------
    //

                    videoElement.autoRewind = videoElementProperties.autoRewind;
                    newVideoProperties = BitFlagUtil.update(newVideoProperties as uint, 
                                                            AUTO_REWIND_PROPERTY_FLAG, true);
                }
                
                if (videoElementProperties.loop !== undefined)
                {
                    videoElement.loop = videoElementProperties.loop;
                    newVideoProperties = BitFlagUtil.update(newVideoProperties as uint, 
                        LOOP_PROPERTY_FLAG, true);
                }
                
                if (videoElementProperties.maintainAspectRatio !== undefined)
