diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 31035f666d9e7c182837754a21b17a3943d04391..5ee661f6c0fe2bd0bfc21a14057b9449bef17daa 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2817,11 +2817,15 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update)
 				 ++attachment_iter)
 			{
 				LLViewerObject* attached_object = attachment_iter->get();
-				BOOL visibleAttachment = visible || (attached_object && 
+				BOOL visibleAttachment = visible || (attached_object && attached_object->mDrawable.notNull() &&
 													 !(attached_object->mDrawable->getSpatialBridge() &&
 													   attached_object->mDrawable->getSpatialBridge()->getRadius() < 2.0));
 				
-				if (visibleAttachment && attached_object && !attached_object->isDead() && attachment->getValid())
+				if (visibleAttachment
+                    && attached_object
+                    && !attached_object->isDead()
+                    && attachment->getValid()
+                    && attached_object->mDrawable.notNull())
 				{
 
                     //override rigged attachments' octree spatial extents with this avatar's bounding box