     override public function animationStart(animation:Animation):void
     {
         super.animationStart(animation);
-        // Note that we don't want the old filters active on the target
-        // during the animation; these filters will already be accounted
-        // for when we take a bitmap snapshot of the object. Applying
-        // the same filters during the animation will effectively double
-        // their impact. So we simply record what the filters are, so that
-        // we can replace them when we're done, and then use only our
-        // shader filter during the animation.
-        oldFilters  = target.filters;
+        previousFilters = target.filters;
+        previousPlusShaderFilters = [shaderFilter].concat(previousFilters);
+        target.filters = previousPlusShaderFilters;
     }
 
     /**

     */
    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 oldFilters:Array;
        
    //--------------------------------------------------------------------------
    //

     */
    private function cleanup():void
    {
        target.filters = previousFilters;
        previousFilters = null;
        previousPlusShaderFilters = null;
        if (disposeFrom)
            bitmapFrom.dispose();
        if (disposeTo)
