         {
             titleDisplay.text = title;
         }
+        else if (instance == controlGroup)
+        {
+            // copy proxied values from controlGroupProperties (if set) to contentGroup
+            var newControlGroupProperties:uint = 0;
+            
+            if (controlGroupProperties.controls !== undefined)
+            {
+                controlGroup.mxmlContent = controlGroupProperties.controls;
+                newControlGroupProperties = BitFlagUtil.update(newControlGroupProperties, 
+                                                               CONTROLS_PROPERTY_FLAG, true);
+            }
+
+            if (controlGroupProperties.layout !== undefined)
+            {
+                controlGroup.layout = controlGroupProperties.layout;
+                newControlGroupProperties = BitFlagUtil.update(newControlGroupProperties, 
+                                                               LAYOUT_PROPERTY_FLAG, true);
+            }
+
+            controlGroupProperties = newControlGroupProperties;
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    override protected function partRemoved(partName:String, instance:Object):void
+    {
+        super.partRemoved(partName, instance);
+
+        if (instance == controlGroup)
+        {
+            // copy proxied values from contentGroup (if explicitely set) to contentGroupProperties
+            
+            var newControlGroupProperties:Object = {};
+            
+            if (BitFlagUtil.isSet(controlGroupProperties as uint, CONTROLS_PROPERTY_FLAG))
+                newControlGroupProperties.controls = controlGroup.getMXMLContent();
+            
+            if (BitFlagUtil.isSet(controlGroupProperties as uint, LAYOUT_PROPERTY_FLAG))
+                newControlGroupProperties.layout = controlGroup.layout;
+            
+            controlGroupProperties = newControlGroupProperties;
+
+            controlGroup.mxmlContent = null;
+            controlGroup.layout = null;
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    override protected function getCurrentSkinState():String
+    {
+        var state:String = enabled ? "normal" : "disabled";
+        if (controlGroup)
+        {
+            if (BitFlagUtil.isSet(controlGroupProperties as uint, CONTROLS_PROPERTY_FLAG))
+                state += "WithControls";
+        }
+        else
+        {
+            if (controlGroupProperties.controls)
+                state += "WithControls";
+        }
+
+        return state;
     }
 }
 

    //  Properties 
    //
    //--------------------------------------------------------------------------

    //----------------------------------
    //  titleField

package spark.components
{

import mx.core.mx_internal;
import mx.utils.BitFlagUtil;

import spark.primitives.supportClasses.TextGraphicElement;
import spark.layouts.supportClasses.LayoutBase;

use namespace mx_internal;

[IconFile("Panel.png")]

