      * @private
      */
     private var originalOffsetY:Number;
+
+    /**
+     * @private
+     */
+    private var lastRotation:Number;
     
     //--------------------------------------------------------------------------
     //

    {
        var targetX:Number = getCurrentValue("x");
        var targetY:Number = getCurrentValue("y");

        // If somebody else has changed our position
        if (Math.abs(newX - targetX) > 0.1)
            centerX = targetX + originalOffsetX;
        
        if (Math.abs(newY - targetY) > 0.1)
            centerY = targetY + originalOffsetY;
        
        var rotateValue:Number = Number(event.value);     
        var radVal:Number = Math.PI * rotateValue / 180;
                
        newX = centerX - originX * Math.cos(radVal) + originY * Math.sin(radVal);
        newY = centerY - originX * Math.sin(radVal) - originY * Math.cos(radVal);
        

        
        if (isNaN(angleTo))
        {
            if (isNaN(angleBy) &&
                propertyChanges &&
                propertyChanges.end["rotation"] !== undefined)
