             applyStartValues(propertyChangesArray,
                              this.targets);
 
+            if (playReversedFromEnd)
+            {
+                for (var j:int = 0; j < propertyChangesArray.length; ++j)
+                {
+                    var tmpStart:Object = propertyChangesArray[j].start;
+                    propertyChangesArray[j].start = propertyChangesArray[j].end;
+                    propertyChangesArray[j].end = tmpStart;
+                }
+            }
             // Revalidate after applying the start values, to get everything
             // back the way it should be before starting the animation
             LayoutManager.getInstance().validateNow();

     */
    protected function effectEndHandler(event:EffectEvent):void 
    {
        var lastTime:Boolean = !_instances || _instances.length == 1;

        // Transitions should set the end values when done

     */
    mx_internal var propertyChangesArray:Array; 
    
    /**
     *  @private
     *  Track the property set in the play() function
     */
    mx_internal var playReversed:Boolean;
    
    private var effectStopped:Boolean;
        
    /**
