diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 35e45c6cd9b8413dfe3dd6f2dd300832798c2486..aae13e3327d424e86d3ce464d8e750c87af010d6 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -4681,7 +4681,7 @@ bool LLVOAvatar::updateCharacter(LLAgent &agent)
 	mSpeed = speed;
 
 	// update animations
-	if (!visible)
+	if (!visible && !isSelf()) // NOTE: never do a "hidden update" for self avatar as it interrupts controller processing
 	{
 		updateMotions(LLCharacter::HIDDEN_UPDATE);
 	}