diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
index 5895ebda84c2aac53b9dc5573bbc432f073dc3bd..59b1720578feca2756dd20818635ebbd5d90080f 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
@@ -11,8 +11,9 @@ varying vec3 vary_normal;
 
 void main() 
 {
-	vec3 col = texture2D(diffuseMap, gl_TexCoord[0].xy).rgb;
-	gl_FragData[0] = vec4(gl_Color.rgb*col, 0.0);
-	gl_FragData[1] = vec4(col*(gl_Color.a*1.5), gl_Color.a);
+	vec3 col = gl_Color.rgb * texture2D(diffuseMap, gl_TexCoord[0].xy).rgb;
+	gl_FragData[0] = vec4(col, 0.0);
+	gl_FragData[1] = vec4(gl_Color.aaa*1.5, gl_Color.a); // spec
+	//gl_FragData[1] = vec4(vec3(gl_Color.a), gl_Color.a+(1.0-gl_Color.a)*gl_Color.a); // spec - from former class3 - maybe better, but not so well tested
 	gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0);
 }