             if (!indices)
             {
                 parentDocument[id] = this;
+                
+                // TODO: Determine if we want "idAssigned" to be an event or
+                // callback function. If this is changed, it alse needs to be
+                // updated in:
+                // modules/compiler/src/java/flex2/compiler/mxml/rep/init/ValueInitializer.java
+                var e:PropertyChangeEvent = new PropertyChangeEvent("idAssigned");
+                e.source = parentDocument;
+                e.property = id;
+                e.oldValue = null;
+                e.newValue = this;
+                parentDocument.dispatchEvent(e);
             }
             else
             {

     *  Transition effect currently playing.
     */
    private var _currentTransitionEffect:IEffect;

    [Inspectable(arrayType="mx.states.Transition")]
    [ArrayElementType("mx.states.Transition")]

    /**
     *  An Array of Transition objects, where each Transition object defines a
     *  set of effects to play when a view state change occurs.
     *
     *  @see mx.states.Transition
     */
    public var transitions:Array /* of Transition */ = [];

    //--------------------------------------------------------------------------
    //
    //  Properties: Other

    //----------------------------------
    //  states
    //----------------------------------
    
    private var _states:Array /* of State */ = [];

    [Inspectable(arrayType="mx.states.State")]
    [ArrayElementType("mx.states.State")]
    
    /**
     *  The view states that are defined for this component.
     *  You can specify the <code>states</code> property only on the root
     *  of the application or on the root tag of an MXML component.
     *  The compiler generates an error if you specify it on any other control.
     */
    public function get states():Array
    {
        return _states;
    }
    
    /**
     *  @private
     */
    public function set states(value:Array):void
    {
        _states = value;
    }
    
    //----------------------------------
    //  transitions
    //----------------------------------
