Placing the fade animation on the login dialog (which also handles the error shake-head animation) results in the dialog fading in each time the login process changes state. It really should only fade when the overall login interface initially appears.