 
         _bottom = value;
         invalidateParentSizeAndDisplayList();
+    }
+
+    //----------------------------------
+    //  filters
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the filters property.
+     */
+    private var _filters:Array;
+    
+    /**
+     *  @private
+     */
+    override public function get filters():Array
+    {
+        return _filters ? _filters : super.filters;
+    }
+    
+    /**
+     *  @private
+     */
+    override public function set filters(value:Array):void
+    {
+        var n:int;
+        var i:int;
+        var e:IEventDispatcher;
+        
+        if (_filters)
+        {
+            n = _filters.length;
+            for (i = 0; i < n; i++)
+            {
+                e = _filters[i] as IEventDispatcher;
+                if (e)
+                    e.removeEventListener(BaseFilter.CHANGE, filterChangeHandler);
+            }
+        }
+        
+        _filters = value;
+        
+        var clonedFilters:Array = [];
+        if (_filters)
+        {
+            n = _filters.length;
+            for (i = 0; i < n; i++)
+            {
+                if (_filters[i] is IBitmapFilter)
+                {
+                    e = _filters[i] as IEventDispatcher;
+                    if (e)
+                        e.addEventListener(BaseFilter.CHANGE, filterChangeHandler);
+                    clonedFilters.push(IBitmapFilter(_filters[i]).clone());
+                }
+                else
+                {
+                    clonedFilters.push(_filters[i]);
+                }
+            }
+        }
+        
+        super.filters = clonedFilters;
     }
 
     //----------------------------------

import mx.core.IVisualElement;
import mx.core.mx_internal;
import mx.events.PropertyChangeEvent;
import mx.geom.Transform;
import mx.geom.TransformOffsets;
import mx.utils.MatrixUtil;

                break;
            }
        }
    }
    
    /**
     *  @private
     */
    private function filterChangeHandler(event:Event):void
    {
        filters = _filters;
    }
    
    /**
