diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
index 7a1968efeeb5589d218a539342f9c8bb4197c7ac..c3827e3a564270e2d7148549d999f7f50cccfa06 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
@@ -174,7 +174,7 @@ void main()
 				
 		if (norm.w < 0.5)
 		{
-            vec3 add = additive * spec.a;
+            vec3 add = additive;
 			col = mix(atmosFragLighting(col, add, atten), fullbrightFragAtmosTransport(col, atten, add), diffuse.a);
 			col = mix(scaleFragSoftClip(col), fullbrightScaleSoftClipFrag(col, atten), diffuse.a);
 		}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index c7950a2a3158e1fdeecabd80d4b1b1ab840b7157..af199fd78ccedb6f7fe95b636f9b090ef9626475 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -186,7 +186,7 @@ void main()
 						
 		if (norm.w < 0.5)
 		{
-            vec3 add = additive * spec.a;
+            vec3 add = additive;
 			col = mix(atmosFragLighting(col, add, atten), fullbrightFragAtmosTransport(col, atten, add), diffuse.a);
 			col = mix(scaleFragSoftClip(col), fullbrightScaleSoftClipFrag(col, atten), diffuse.a);
 		}
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
index 770f9a5f4fc0b243b0278f84db82e0ba9009e57c..20c4d82dedc40ad402170bf4ee906e1a9752a358 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
@@ -149,6 +149,7 @@ void calcFragAtmospherics(vec3 inPositionEye, float ambFactor, out vec3 sunlit,
 	//brightness of surface both sunlight and ambient
 	sunlit = vec3(sunlight * .5);
 	amblit = vec3(tmpAmbient * .25);
-	additive *= vec3(1.0 - temp1);
+    additive  = normalize(additive);
+	additive *= vec3(1.0 - exp(-temp2.z * distance_multiplier)) * 0.5;
 }
 
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
index d174805cc08c739c70b2255b4aafbdc096547dc9..7a6bcd53a1629a09ffc6304b598fbff8190b6b63 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
@@ -124,16 +124,22 @@ void calcAtmospherics(vec3 inPositionEye) {
 	//increase ambient when there are more clouds
 	vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow * 0.5;
 
-	//haze color
-	setAdditiveColor(
+    vec3 additive =	
 		vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow) + tmpAmbient)
 	  + (haze_horizon * haze_weight) * (sunlight*(1.-cloud_shadow) * temp2.x
-		  + tmpAmbient)));
+		  + tmpAmbient));
+    additive = normalize(additive);
+
+	//haze color
+	//setAdditiveColor(
+	//	vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow) + tmpAmbient)
+	//  + (haze_horizon * haze_weight) * (sunlight*(1.-cloud_shadow) * temp2.x
+	//	  + tmpAmbient)));
 	
 	//brightness of surface both sunlight and ambient
 	setSunlitColor(vec3(sunlight * .5));
 	setAmblitColor(vec3(tmpAmbient * .25));
-	setAdditiveColor(getAdditiveColor() * vec3(1.0 - temp1));
+	setAdditiveColor(additive * vec3(1.0 - exp(-temp2.z * distance_multiplier)) * 0.5);
 
 	// vary_SunlitColor = vec3(0);
 	// vary_AmblitColor = vec3(0);
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
index 414ba3236a44b7eaad7122b9447eef0085036ba4..99dbee15eed4006818f8f5a730990e86f68a3990 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
@@ -73,9 +73,6 @@ void setAmblitColor(vec3 v)
 
 void setAdditiveColor(vec3 v)
 {
-    // SL-1491 clamp additive term to something reasonable to prevent
-    // lens flares over non-reflective surfaces
-    v = clamp(v, vec3(0), vec3(0.8));
 	additive_color = v;
 	vary_AdditiveColor = v;
 }