             }          
         }
         
-        setColorTransform(colorTransform);
+        var mxTransform:mx.geom.Transform = value as mx.geom.Transform;        
+        applyColorTransform(colorTransform, mxTransform && mxTransform.applyColorTransformAlpha);
 
         invalidateTransform(previous != needsDisplayObject);
     }

        _transform = value;
    }
    
    public function setColorTransform(value:ColorTransform):void
    {
        if (_colorTransform != value)
        {
            var previous:Boolean = needsDisplayObject;
            // Make a copy of the colorTransform
            _colorTransform = new ColorTransform(value.redMultiplier, value.greenMultiplier, value.blueMultiplier, value.alphaMultiplier,
                                                 value.redOffset, value.greenOffset, value.blueOffset, value.alphaOffset);
            
            if (displayObject && displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
            {

                if (_colorTransform)
                    displayObject.transform.colorTransform = _colorTransform;
            }
            
            if (alphaChanged || displayObjectChanged)
            {
                alphaChanged = false;
                
                mxTransform = _transform as mx.geom.Transform;
                if (!mxTransform || !mxTransform.applyColorTransformAlpha)
                    displayObject.alpha = _alpha;
            }  

            if (blendModeChanged || displayObjectChanged)
            {
