      *  Transition effect currently playing.
      */
     private var _currentTransitionEffect:IEffect;
+
+    private var _transitions:Array /* of Transition */ = [];
 
     [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 */ = [];
-
+    public function get transitions():Array
+    {
+        return _transitions;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set transitions(value:Array):void
+    {
+        _transitions = value;
+    }
     //--------------------------------------------------------------------------
     //
     //  Properties: Other

    public function setCurrentState(stateName:String,
                                    playTransition:Boolean = true):void
    {
        // Only change if the requested state is different. Since the root
        // state can be either null or "", we need to add additional check
        // to make sure we're not going from null to "" or vice-versa.

            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
            {
