diff --git a/indra/newview/llviewerwearable.cpp b/indra/newview/llviewerwearable.cpp
index 2d7a0f920f1d4dbfca712f3658c16f9b57525151..2d7f1f32075dca76d7101303c8d465331fdfb6a3 100644
--- a/indra/newview/llviewerwearable.cpp
+++ b/indra/newview/llviewerwearable.cpp
@@ -317,9 +317,9 @@ LLUUID LLViewerWearable::getDefaultTextureImageID(ETextureIndex index) const
 //virtual
 void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)
 {
-	LLVOAvatarSelf* viewer_avatar = dynamic_cast<LLVOAvatarSelf*>(avatarp);
+	if (!avatarp || !avatarp->isSelf()) return;
 
-	if (!avatarp || !viewer_avatar) return;
+	LLVOAvatarSelf* viewer_avatar = static_cast<LLVOAvatarSelf*>(avatarp);
 
 	if (!viewer_avatar->isValid()) return;