diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index d1abebf84ce529641cb279022c1c2f5b0b3ad667..cd7a76db28c67959f6e50f8487be938a0ccc0bca 100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
@@ -534,11 +534,17 @@ void main()
 #ifdef FOR_IMPOSTOR
 	vec4 color;
 	color.rgb = diff.rgb;
-	color.a   = diff.a;
+
+#ifdef USE_VERTEX_COLOR
+	float final_alpha = diff.a * vertex_color.a;
+	diff.rgb *= vertex_color.rgb;
+#else
+	float final_alpha = diff.a;
+#endif
 
 	// Insure we don't pollute depth with invis pixels in impostor rendering
 	//
-	if (color.a < 0.01)
+	if (final_alpha < 0.01)
 	{
 		discard;
 	}