                 m = effectProps.length;
                 for (j = 0; j < m; j++)
                 {
-                    if (effectProps[j] in propChanges[i].end)
+                    var propName:String = effectProps[j];
+                    var startVal:* = propChanges[i].start[propName];
+                    var endVal:* = propChanges[i].end[propName];
+                    if (propName in propChanges[i].end &&
+                        endVal != startVal &&
+                        (!(endVal is Number) ||
+                         !(isNaN(endVal) && isNaN(startVal))))
                     {
-                        applyValueToTarget(target, effectProps[j],
-                                propChanges[i].end[effectProps[j]],
+                        applyValueToTarget(target, propName,
+                                propChanges[i].end[propName],
                                 propChanges[i].end);
                     }
                 }

                m = effectProps.length;
                for (j = 0; j < m; j++)
                {
                    if (effectProps[j] in propChanges[i].start)
                    {
                        applyValueToTarget(target, effectProps[j],
                                propChanges[i].start[effectProps[j]],

                m = relevantStyles.length;
                for (j = 0; j < m; j++)
                {
                    var styleName:String = relevantStyles[j];
                    var startStyle:* = propChanges[i].start[styleName];
                    var endStyle:* = propChanges[i].end[styleName];
                    if (styleName in propChanges[i].start &&
                        endStyle != startStyle &&
                        (!(startStyle is Number) ||
                         !(isNaN(endStyle) && isNaN(startStyle))) &&
                        target is IStyleClient)
                    {
                        if (propChanges[i].end[relevantStyles[j]] !== undefined)
                            target.setStyle(relevantStyles[j], propChanges[i].start[relevantStyles[j]]);
                        else
                            target.clearStyle(relevantStyles[j]);
                    }
                }
            }
        }
