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

    override protected function setValue(property:String, value:Object):void
    {
        shader.data.progress.value = [value];
        target.filters = [shaderFilter];
    }

    /**

    override public function animationStart(animation:Animation):void
    {
        super.animationStart(animation);
        previousFilters = target.filters;
        previousPlusShaderFilters = [shaderFilter].concat(previousFilters);
        target.filters = previousPlusShaderFilters;
    }

    /**
