diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 6c4c6b6faeb5c1faaf76eb4290e36cda4dfdcb8d..e768adcf67315bd917a271cb19e459ed13e0925a 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -4890,7 +4890,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);
 	}