         disposeFrom = (bitmapFrom == null);
         disposeTo = (bitmapTo == null);
         
+        // If we got the bitmaps from the state information in a transition, they
+        // are stored along with the visual bounds of the object in an Object
+        var boundsFrom:Rectangle;
+        var boundsTo:Rectangle;
+        var bmHolder:Object;
+        
         // TODO (chaase): Should take the 'from' snapshot on the
         // fly, in case the object has changed since the overall
         // effect (composite, etc) started much earlier and the
         // object has changed since propertyChanges was initialized 
-        if (!bitmapFrom)
-            if (propertyChanges &&
-                propertyChanges.start["bitmap"] !== undefined)
-            {
-                bitmapFrom = propertyChanges.start["bitmap"];
-            }
-        if (!bitmapTo)
-            if (propertyChanges &&
-                propertyChanges.end["bitmap"] !== undefined)
-            {
-                bitmapTo = propertyChanges.end["bitmap"];
-            }
+        if (!bitmapFrom && propertyChanges &&
+            propertyChanges.start["bitmapInfo"] !== undefined)
+        {
+            bmHolder = propertyChanges.start["bitmapInfo"];
+            bitmapFrom = bmHolder["bitmap"];
+            boundsFrom = bmHolder["bounds"];
+        }
+        if (!bitmapTo && propertyChanges &&
+            propertyChanges.end["bitmapInfo"] !== undefined)
+        {
+            bmHolder = propertyChanges.end["bitmapInfo"];
+            bitmapTo = bmHolder["bitmap"];
+            boundsTo = bmHolder["bounds"];
+        }
         if (!bitmapFrom)
             if (propertyChanges &&
                 (propertyChanges.start["visible"] == false ||

            shader = new Shader(shaderByteCode);
            if (shader.data)
            {
                shader.data.from.input = bitmapFrom;
                shader.data.to.input = bitmapTo;
                

import flash.display.BitmapData;
import flash.display.Shader;
import flash.filters.ShaderFilter;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.utils.ByteArray;

import mx.core.IUIComponent;
