     override protected function effectStartHandler(event:EffectEvent):void
     {
         super.effectStartHandler(event);
-        delete transformInstancePerTarget[event.effectInstance.target];
+        // Delete any cached info about the effect instance, such as the
+        // shared transform effect instance
+        var topmostParallel:Parallel = getOwningParallelEffect();
+        if (topmostParallel != null)
+            sharedObjectDepot.removeSharedObject(topmostParallel, 
+                event.effectInstance.target);
         delete appliedStartValuesPerTarget[event.effectInstance.target];
         delete appliedEndValuesPerTarget[event.effectInstance.target];
     }

            target = this.target;
    
        var parent:Effect = parentCompositeEffect;
        if (!transformInstancePerTarget[target] ||
            (parent && parent is Sequence))
        {
            // FIXME (chaase): need to clear out this entry once the effect
            // starts (stops?) because we don't want it hanging around for
            // future runs
            var newInstance:IEffectInstance = super.createInstance(target);
            transformInstancePerTarget[target] = newInstance;
            return newInstance;
        }
        else
        {
            var instance:AnimateTransformInstance = 
                AnimateTransformInstance(transformInstancePerTarget[target]);
            initInstance(instance);
            // return null to indicate that there is no 'new' instance. This 
            // keeps it from being redundantly added to composite effects
            return null;

                        if (startDelay != 0)
                            kf.time += startDelay;
                    }
                    adjustedDuration = Math.max(adjustedDuration, 
                        mp.keyframes[mp.keyframes.length - 1].time);
                }
            }
            var globalStartTime:Number = getGlobalStartTime();
