 			if(gfNumLights>0){
 				fragColor *= vec4(rgb, alpha);
 			}else{
-				fragColor = vec4(rgb, alpha);
+				fragColor *= vec4(rgb, alpha);
 			}
 #else	//ifndef GF_GL_IS_YUV
 		if(gfNumLights>0){	//RGB texture
 			fragColor *= texture2DRect(y_plane, TexCoord);
 		}else if(gfNumLights==0){	//RGB texture with material 2D
-			fragColor = texture2DRect(y_plane, TexCoord);
+			fragColor *= texture2DRect(y_plane, TexCoord);
 		}
 #endif
 #else	//ifndef GF_GL_IS_RECT

			if(gfNumLights>0){
				fragColor *= vec4(rgb, alpha);
			}else{
				fragColor = vec4(rgb, alpha);
			}
#else	//ifndef GF_GL_IS_YUV
		if(gfNumLights>0){	//RGB texture
			fragColor *= texture2D(y_plane, TexCoord);
		}else if(gfNumLights==0){	//RGB texture with material 2D [TODO: check]
			fragColor = texture2D(y_plane, TexCoord);
		}
#endif
#endif

	if(hasMeshColor){	//
		fragColor = m_color;
	}else if(gfNumLights==0){	//is material2D => no lights - only colour (stored in gfEmissionColor)
		if(gfEmissionColor != vec4(0.0, 0.0, 0.0, 0.0)){
			fragColor = gfEmissionColor;
		}else{
			fragColor = vec4(1.0, 1.0, 1.0, 1.0);
		}
	}else if(gfNumLights>0){
		//default material (visual->has_material) -> handled in doLighting()
	}
	
	//clippin
	if(hasClip){
		for(int i=0;i<CLIPS_MAX;i++){
