     //--------------------------------------------------------------------------
     
     //----------------------------------
+    //  autoLayout
+    //----------------------------------
+
+    [Inspectable(defaultValue="true")]
+
+    /**
+     *  @copy mx.components.baseClasses.GroupBase#autoLayout
+     */
+    public function get autoLayout():Boolean
+    {
+        if (dataGroup)
+            return dataGroup.autoLayout;
+        else
+        {
+            // want the default to be true
+            return (dataGroupProperties.autoLayout === undefined) ?
+                    true : false
+        }
+    }
+
+    /**
+     *  @private
+     */
+    public function set autoLayout(value:Boolean):void
+    {
+        if (dataGroup)
+        {
+            dataGroup.autoLayout = value;
+            dataGroupProperties = BitFlagUtil.update(dataGroupProperties as uint, 
+                                                     AUTO_LAYOUT_PROPERTY_FLAG, true);
+        }
+        else
+            dataGroupProperties.autoLayout = value;
+    }
+    
+    //----------------------------------
     //  clipAndEnableScrolling
     //----------------------------------
     

        {
            dataGroup.removeEventListener(
                PropertyChangeEvent.PROPERTY_CHANGE, dataGroup_propertyChangeHandler);
            
            // copy proxied values from dataGroup (if explicitely set) to dataGroupProperties
            

            
            dataGroupProperties = newDataGroupProperties;
            
            if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
            {
                // the only reason we have this listener is to re-dispatch events.  So only add it here
                // if someone's listening on us.
                dataGroup.addEventListener(
                    PropertyChangeEvent.PROPERTY_CHANGE, dataGroup_propertyChangeHandler);
            }
            
            if (hasEventListener(RendererExistenceEvent.RENDERER_ADD))
            {
                // the only reason we have this listener is to re-dispatch events.  So only add it here
                // if someone's listening on us.
                dataGroup.addEventListener(
                    RendererExistenceEvent.RENDERER_ADD, dispatchEvent);
            }
            
            if (hasEventListener(RendererExistenceEvent.RENDERER_REMOVE))
            {
                // the only reason we have this listener is to re-dispatch events.  So only add it here
                // if someone's listening on us.
                dataGroup.addEventListener(
                    RendererExistenceEvent.RENDERER_REMOVE, dispatchEvent);
            }
        }
    }
    
