         if (!hasBitmaps)
             return;
         
-        target.filters = (previousFilters != null) ? previousFilters : [];
-        previousFilters = null;
-        previousPlusShaderFilters = null;
+        target.filters = acquireFilters();
+        
         if (disposeFrom)
             bitmapFrom.dispose();
         if (disposeTo)

     *  @productversion Flex 4
     */
    protected var shader:Shader;    

    /**
     * @private
     * Cache the filters set on the target when the effect begins.
     * We will assign our own filters during the effect, so we should
     * restore the old filters when we're done
     */
    private var previousFilters:Array;

    /**
     * @private
     * The filters that we will assign during the animation. This is
     * a concatenation of our shaderFilter plus any filters that were
     * already on the target.
     */
    private var previousPlusShaderFilters:Array;
    
    /**
     *  @private

            return;
        
        shader.data.progress.value = [value];
        target.filters = [shaderFilter].concat(acquireFilters());
    }

    /**
