     override public function play():void
     {
         var autoProps:Object = new Object();
+        var s:String;
         
         if (propertyChanges)
         {
-            for (var s:String in propertyChanges.end)
-                if (TRANSFORM_PROPERTIES.indexOf(s) >= 0 &&
+            // autoProps holds the properties that we want to automatically
+            // create animations for. Only do this for properties that
+            // are directly related to this effect instance (affectedProperties)
+            // and which change between states (propertyChanges values)
+            for (s in propertyChanges.end)
+                if (affectedProperties[s] !== undefined &&
                     propertyChanges.end[s] !== undefined &&
+                    propertyChanges.start[s] !== undefined &&
                     propertyChanges.start[s] != propertyChanges.end[s])
                 {
                     autoProps[s] = s;
                 }
-        } 
+        }  
         if (motionPaths)
         {
             var i:int;

                motionPaths = new Vector.<MotionPath>();
            motionPaths.push(mp);
        }
        // FIXME (chaase): We probably need to advertise percentWidth/Height
        // in the affected properties/styles arrays; we don't pick these up
        // in the transition propertyChanges automatically otherwise 
        if (propertyChanges && !disableLayout)
        {
            setupConstraintAnimation("left");
            setupConstraintAnimation("right");
            setupConstraintAnimation("top");
            setupConstraintAnimation("bottom");
            setupConstraintAnimation("percentWidth");
            setupConstraintAnimation("percentHeight");
            setupConstraintAnimation("horizontalCenter");
            setupConstraintAnimation("verticalCenter");
            // FIXME (chaase): also deal with baseline when it works in BasicLayout
        }
        super.play();
    }


    private static var offsetRotation:Vector3D = new Vector3D();
    private static var offsetTranslation:Vector3D = new Vector3D();
    private static var offsetScale:Vector3D = new Vector3D();

    /**
     * These maps hold the properties and layout constraints used to
     * set up automatic property animations based on state changes. They
     * are populated when the effect instance is set up according to 
     * the properties/constraints affected by each transform effect.
     */
    mx_internal var layoutConstraints:Object = new Object();
    mx_internal var affectedProperties:Object = new Object();
    

    //--------------------------------------------------------------------------
    //
