      */
     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

     */
    mx_internal var propertyChangesArray:Array; 
    
    private var effectStopped:Boolean;
        
    /**

            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();
