         
         for (i = 0; i < newLen; i++)
         {
-            if (value[i] is IBitmapFilter)
-            {
-                edFilter = value[i] as IEventDispatcher;
+        	if (value[i] is IFlexBitmapFilter)
+        	{
+        		edFilter = value[i] as IEventDispatcher;
                 if (edFilter)
-                    edFilter.addEventListener(BaseFilter.CHANGE, filterChangedHandler);
-                _clonedFilters.push(IBitmapFilter(value[i]).clone());
-            }
+                    edFilter.addEventListener(Event.CHANGE, filterChangedHandler);
+                _clonedFilters.push(IFlexBitmapFilter(value[i]).createBitmapFilter());
+        	}
             else
             {
-                _clonedFilters.push(value[i]);
+            	_clonedFilters.push(value[i]);
             }
         }
 

import flash.display.Sprite;
import flash.events.Event;
import flash.events.IEventDispatcher;
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.geom.Matrix3D;

import mx.events.FlexEvent;
import mx.events.PropertyChangeEvent;
import mx.events.PropertyChangeEventKind;
import mx.filters.IFlexBitmapFilter;
import mx.geom.Transform;
import mx.geom.TransformOffsets;
import mx.graphics.IGraphicElement;
