diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index e08379af0946628f41b27c1bea6817c999c2073b..e74d20a8efca63ed83036b6ebb3b2d1433ebbba1 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -5166,6 +5166,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
             bool is_mesh = vobj->isMesh();
             F32 est_tris = vobj->getEstTrianglesMax();
 
+            vobj->updateControlAvatar();
+            
             LL_DEBUGS("AnimatedObjectsLinkset") << vobj_name << " rebuilding, isAttachment: " << (U32) vobj->isAttachment()
                                                 << " is_mesh " << is_mesh
                                                 << " est_tris " << est_tris
@@ -5199,8 +5201,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
 			rigged = rigged || (vobj->isAnimatedObject() && vobj->isRiggedMesh() &&
                 vobj->getControlAvatar() && vobj->getControlAvatar()->mPlaying);
 
-            vobj->updateControlAvatar();
-            
 			bool bake_sunlight = LLPipeline::sBakeSunlight && drawablep->isStatic();
 			bool any_rigged_face = false;