         // to be fading it in
         if ("visible" in target && !target.visible && 
             alphaFrom == 0 && alphaTo != 0 &&
-            propChanges && propChanges.end["visible"] !== undefined)
+            propChanges && propChanges.end["visible"] !== undefined &&
+            propertyChanges.end["visible"] != propertyChanges.start["visible"])
         {
             target.alpha = 0;
             target.visible = true;

        // side-effecting and what we should reset at the end
        if ("visible" in target && target.visible && 
            alphaFrom != 0 && alphaTo == 0 &&
            propChanges && propChanges.end["visible"] !== undefined)
        {
            makeInvisible = true;
        }

        }
        else if (isNaN(alphaTo))
        {
            if (propChanges && propChanges.end["alpha"] !== undefined &&
                propertyChanges.end["alpha"] != propertyChanges.start["alpha"])
            {
                alphaTo = propChanges.end["alpha"];
            }
