     /**
      * Utility map used in applyValues()
      */
-    private var currentValues:Object = {rotationX:NaN, rotationY:NaN, rotation:NaN,
+    private var currentValues:Object = {rotationX:NaN, rotationY:NaN, rotationZ:NaN,
                                         scaleX:NaN, scaleY:NaN, scaleZ:NaN,
+                                        translationX:NaN, translationY:NaN, translationZ:NaN,
                                         _rotationX:NaN, _rotationY:NaN, _rotationZ:NaN,
-                                        _scaleX:NaN, _scaleY:NaN, _scaleZ:NaN };
+                                        _scaleX:NaN, _scaleY:NaN, _scaleZ:NaN,
+                                        _translationX:NaN, _translationY:NaN, _translationZ:NaN};
     
     /**
      * Utility structures used in applyValues()

    //--------------------------------------------------------------------------

    /**
     * Flag to indicate that this single instance of the transform-related
     * effects has already started and should not be started again. If there
     * are several transform effects running in the same effect tree, as children

        // simultaneously to perform our composite transform operation
        for (var i:int = 0; i < animationProperties.length; ++i)
        {
            // Collect all transform-related values in currentValues, but
            // pass any other values, like constraints, to setValue()
            if (currentValues[animationProperties[i].property] !== undefined)
                currentValues[animationProperties[i].property] = anim.currentValue[i];
            else
                setValue(animationProperties[i].property, anim.currentValue[i]);
        }
        if (!isNaN(currentValues.scaleX) ||
            !isNaN(currentValues.scaleY) || 
