                 if (_transform)
                 {
                     _colorTransform = _transform.colorTransform;
-                    invalidateDisplayList();
-                    notifyElementLayerChanged();
+                    
+                    if (displayObject)
+                    {
+                        displayObject.transform.colorTransform = _colorTransform;
+                    }
+                    else
+                    {
+                        invalidateDisplayList();
+                        notifyElementLayerChanged();
+                    }
                 }
             }
         }

     */
    public function set transform(value:flash.geom.Transform):void
    {
        // Clean up the old event listeners
        var oldTransform:mx.geom.Transform =
            _transform as mx.geom.Transform;
        if (oldTransform)
        {
            oldTransform.removeEventListener(
                PropertyChangeEvent.PROPERTY_CHANGE,
                transformPropertyChangeHandler);
        }

        var newTransform:mx.geom.Transform = value as mx.geom.Transform;

        if (newTransform)
        {
            newTransform.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
                                          transformPropertyChangeHandler);
			if(value.matrix != null)
			{
				layoutFeatures.layoutMatrix = value.matrix;
			}
			else if (value.matrix3D != null)
			{
				layoutFeatures.layoutMatrix3D = value.matrix3D;
			}            
            _colorTransform = value.colorTransform;
        }
        _transform = value;
        invalidateTransform();
    }

	/**
	 * Documentation is not currently available.  the matrix of a component is the transform matrix used to calculate its layout
	 * relative to its siblings. This matrix is modified by the values of the offset property to determine its final, computed matrix.

    {
        if (displayObject)
            return displayObject;
        
        return new Sprite();
    }
    
    
