      */
     public function get creationPolicy():String
     {
-        return _creationPolicy;
+        // Use an inheriting style as the backing storage for this property.
+        // This allows the property to be inherited by either mx or spark
+        // containers, and also to correctly cascade through containers that
+        // don't have this property (ie Group).
+        // This style is an implementation detail and should be considered
+        // private. Do not set it from CSS.
+        if (creationPolicyNone)
+            return ContainerCreationPolicy.NONE;
+        return getStyle("_creationPolicy");
     }
 
     /**

    //  creationPolicy
    //----------------------------------

    /**
     *  @private
     *  Storage for the creationPolicy property.
     *  This variable is initialized in the <code>construct()</code> method
     *  using the <code>childDescriptors</code> property in the initObj, which is autogenerated.
     *  If this Container was not created by the <code>createComponentFromDescriptor()</code> method,
     *  its <code>childDescriptors</code> property is <code>null</code>.
     */
    private var _creationPolicy:String;

    [Inspectable(enumeration="all,auto,queued,none")]

    /**
     *  The child creation policy for this Container.
     *  ActionScript values can be <code>ContainerCreationPolicy.AUTO</code>, 

        // If the author has specified a policy, use it.
        // Otherwise, use the parent's policy.
        // This must be set before createChildren() gets called.
        if (actualCreationPolicy == null)
        {
            if (creationPolicy != null)
                actualCreationPolicy = creationPolicy;
    
            if (actualCreationPolicy == ContainerCreationPolicy.QUEUED)
                actualCreationPolicy = ContainerCreationPolicy.AUTO;
        }
        
        // It is ok for actualCreationPolicy to be null. Popups require it.

        if (actualCreationPolicy == ContainerCreationPolicy.NONE)
