      */
     protected function effectEndHandler(event:EffectEvent):void 
     {
+        if (playReversed && propertyChangesArray != null)
+        {
+            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;
+            }
+        }
         var lastTime:Boolean = !_instances || _instances.length == 1;
 
         // Transitions should set the end values when done

    {
        effectStopped = false;
        isPaused = false;
        
        // If we have a propertyChangesArray, capture the current values
        // if they haven't been captured already, strip out any unchanged 

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