 
         // Stop any transition that may still be playing
         var prevTransitionFraction:Number;
-        if (_currentTransitionEffect)
-        {
-            if (_currentTransitionEffect.autoReverse &&
-                _currentTransitionEffect.fromState == requestedCurrentState &&
-                _currentTransitionEffect.toState == _currentState)
+        if (_currentTransition)
+        {
+            if (_currentTransition.autoReverse &&
+                transitionFromState == requestedCurrentState &&
+                transitionToState == _currentState &&
+                "playheadTime" in _currentTransition.effect)
             {
-                if (_currentTransitionEffect.duration == 0)
+                if (_currentTransition.effect.duration == 0)
                     prevTransitionFraction = 0;
                 else
                     prevTransitionFraction = 
-                        _currentTransitionEffect.playheadTime /
-                        _currentTransitionEffect.duration;
+                        _currentTransition.effect["playheadTime"] /
+                        getTotalDuration(_currentTransition.effect);
             }
-            _currentTransitionEffect.end();
+            _currentTransition.effect.end();
         }
 
         // Initialize the state we are going to.
         initializeState(requestedCurrentState);
 
         // Capture transition start values
-        if (transition)
-            transition.captureStartValues();
+        if (nextTransition)
+            nextTransition.effect.captureStartValues();
 
         // Dispatch currentStateChanging event
         event = new StateChangeEvent(StateChangeEvent.CURRENT_STATE_CHANGING);

 *  @eventType mx.events.EffectEvent.EFFECT_START
 */
[Event(name="effectStart", type="mx.events.EffectEvent")]

/**
 *  Dispatched after an effect ends.

     */
    private function commitCurrentState():void
    {
        var nextTransition:Transition =
            playStateTransition ?
            getTransition(_currentState, requestedCurrentState) :
            null;
