diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 05829163629a7aaba8613ce9d8697f94d9e0c0e7..1cc9b6a51060b8895467df30c97a81c2ec535ed8 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -3822,6 +3822,12 @@ bool LLAgent::teleportCore(bool is_local)
 		return false;
 	}
 
+	// force stand up and stop a sitting animation (if any), see MAINT-3969
+	if (isAgentAvatarValid() && gAgentAvatarp->getParent() && gAgentAvatarp->isSitting())
+	{
+		gAgentAvatarp->getOffObject();
+	}
+
 #if 0
 	// This should not exist. It has been added, removed, added, and now removed again.
 	// This change needs to come from the simulator. Otherwise, the agent ends up out of