         // Capture transition start values
         if (nextTransition)
             nextTransition.effect.captureStartValues();
-
+        
+        // Now that we've captured the start values, apply the end values of
+        // the effect as normal. This makes sure that objects unaffected by the
+        // next transition have their correct end values from the previous
+        // transition
+        if (tmpPropertyChanges)
+            prevTransitionEffect.applyEndValues(tmpPropertyChanges,
+                prevTransitionEffect.targets);
+        
         // Dispatch currentStateChanging event
         if (hasEventListener(StateChangeEvent.CURRENT_STATE_CHANGING)) 
         {

            _currentTransition = nextTransition;
            transitionFromState = oldState;
            transitionToState = _currentState;
            nextTransition.effect.addEventListener(EffectEvent.EFFECT_END, 
                transition_effectEndHandler);
            nextTransition.effect.play();

        return (this is IStateClient2 && (states.length > 0)) ? states[0].name : null;
    }

    // Used by commitCurrentState() to avoid hard-linking against Effect
    private static var effectType:Class;
    private static var effectLoaded:Boolean = false;

    /**
     *  @private
     *  Commit a pending current state change.
