diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index bd8ecdb166092be5fe437a67cf48745f4e5af245..1cc81fa8632f91785e9bda2c7abc4a7755f5999e 100755
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -545,7 +545,10 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)
 
 					emissive_shader->bind();
 					
-					params.mVertexBuffer->setBuffer(mask & LLVertexBuffer::MAP_EMISSIVE);
+					U32 final_mask = params.mFullbright ? (mask | LLVertexBuffer::MAP_EMISSIVE)
+																	: ((mask & ~LLVertexBuffer::MAP_COLOR) | LLVertexBuffer::MAP_EMISSIVE);
+
+					params.mVertexBuffer->setBuffer(final_mask);
 					
 					// do the actual drawing, again
 					params.mVertexBuffer->drawRange(params.mDrawMode, params.mStart, params.mEnd, params.mCount, params.mOffset);