diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 983a7ca1aed294c2f688ec4916ee24e1fc2cb6fe..4a12d03f745053b341c5750df90b39e2c80131a2 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -46,6 +46,7 @@
 #include "llundo.h"
 #include "lluuid.h"
 #include "llvolume.h"
+#include "llcontrolavatar.h"
 #include "message.h"
 #include "object_flags.h"
 #include "llquaternion.h"
@@ -6660,7 +6661,15 @@ void LLSelectMgr::updateSelectionCenter()
 		}
 		else
 		{
-			mPauseRequest = NULL;
+            LLVOVolume *volp = dynamic_cast<LLVOVolume*>(object);
+            if (volp && volp->isAnimatedObject() && volp->getControlAvatar())
+            {
+                mPauseRequest = volp->getControlAvatar()->requestPause();
+            }
+            else
+            {
+                mPauseRequest = NULL;
+            }
 		}
 
 		if (mSelectedObjects->mSelectType != SELECT_TYPE_HUD && isAgentAvatarValid())
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 4065f9fc37454d9784c579073b94dbbe41bdaff3..d661837dddf2c36040832b041eae240cd0b2717d 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -4269,9 +4269,9 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&
 bool LLVOVolume::treatAsRigged()
 {
 	return isSelected() &&
-			isAttachment() &&
-			mDrawable.notNull() &&
-			mDrawable->isState(LLDrawable::RIGGED);
+        (isAttachment() || isAnimatedObject()) &&
+        mDrawable.notNull() &&
+        mDrawable->isState(LLDrawable::RIGGED);
 }
 
 LLRiggedVolume* LLVOVolume::getRiggedVolume()