diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index d6fbae7b22bbd0da70d6c661dacb1475174fcd22..00a6a9dcb5e5e9f51e7139da31cdd72d091c2a16 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -315,7 +315,7 @@ void main()
 		// reflect light direction to increase the illusion that
 		// these are reflections.
 		vec3 reflight = reflect(lightnorm.xyz, norm.xyz);
-		float reflit = max(dot(refn, reflight.xyz), 0.0);
+		float reflit = min(max(dot(refn, reflight.xyz), 0.0), refshad);
 		// apply sun color to guess-point, dampen according to inappropriateness of guess
 		float refmod = min(refapprop, reflit);
 		vec3 refprod = vary_SunlitColor * refcol.rgb * refmod;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
index ecfd9bef52b231b9155df4977ff8077259fa55ef..aaa74eb7df49a6b92cd0092ba7c8a8309070f14e 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
@@ -318,7 +318,7 @@ void main()
 		// reflect light direction to increase the illusion that
 		// these are reflections.
 		vec3 reflight = reflect(lightnorm.xyz, norm.xyz);
-		float reflit = max(dot(refn, reflight.xyz), 0.0);
+		float reflit = min(max(dot(refn, reflight.xyz), 0.0), refshad);
 		// apply sun color to guess-point, dampen according to inappropriateness of guess
 		float refmod = min(refapprop, reflit);
 		vec3 refprod = vary_SunlitColor * refcol.rgb * refmod;