             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 sharedInstance:IEffectInstance = null;
+        var topmostParallel:Parallel = getOwningParallelEffect();
+        if (topmostParallel != null)
+            sharedInstance = IEffectInstance(
+                sharedObjectDepot.getSharedObject(topmostParallel, target));
+        if (!sharedInstance)
+        {
             var newInstance:IEffectInstance = super.createInstance(target);
-            transformInstancePerTarget[target] = newInstance;
+            if (topmostParallel)
+                sharedObjectDepot.storeSharedObject(topmostParallel, 
+                    target, newInstance);
             return newInstance;
         }
         else
         {
-            var instance:AnimateTransformInstance = 
-                AnimateTransformInstance(transformInstancePerTarget[target]);
-            initInstance(instance);
+            initInstance(sharedInstance);
             // return null to indicate that there is no 'new' instance. This 
             // keeps it from being redundantly added to composite effects
             return null;

    override protected function effectStartHandler(event:EffectEvent):void
    {
        super.effectStartHandler(event);
        delete transformInstancePerTarget[event.effectInstance.target];
        delete appliedStartValuesPerTarget[event.effectInstance.target];
        delete appliedEndValuesPerTarget[event.effectInstance.target];
    }

    override protected function initInstance(instance:IEffectInstance):void
    {
        var i:int;
        var adjustedDuration:Number = duration;
        var target:Object = instance.target;
        
        var transformInstance:AnimateTransformInstance =
