diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 753d287c103b11a0c5d33388150fff63e15f9395..f760ab17c6a3551134892040b86c86538cb7764e 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -2066,6 +2066,13 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
 		{
 			continue;
 		}
+		const LLTextureEntry* tex_entry = face->getTextureEntry();
+
+		// Don't render invisible faces even when they are in a linkset.
+		if (tex_entry && tex_entry->getColor().mV[VW] == 0.0f)
+		{
+			continue;
+		}
 
 		//stop_glerror();
 
@@ -2078,7 +2085,6 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
 
 		LLVertexBuffer* buff = face->getVertexBuffer();
 
-        const LLTextureEntry* tex_entry = face->getTextureEntry();
 		LLMaterial* mat = tex_entry ? tex_entry->getMaterialParams().get() : nullptr;
 
         if (LLDrawPoolAvatar::sShadowPass >= 0)