diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
index 3364d5b5fc6aec6ff0b38fe8e011c7c8489614f0..57916eb3e5620cf3103e58b82f935a80208e8601 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
@@ -158,7 +158,7 @@ void main()
 	
 	proj_tc.xyz /= proj_tc.w;
 	
-	float fa = (falloff * 0.5)+1.0;
+	float fa = falloff+1.0;
 	float dist_atten = min(1.0-(dist-1.0*(1.0-fa))/fa, 1.0);
 	dist_atten *= dist_atten;
 	dist_atten *= 2.0;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
index 55410c1ed7a3531f7408f1ded12cd5bf5b81c266..f8264d971c0f482e5dd8c4ca1421e03cda795619 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
@@ -89,7 +89,7 @@ void main()
     float noise = texture2D(noiseMap, frag.xy/128.0).b;
     
     vec3 col = texture2DRect(diffuseRect, frag.xy).rgb;
-    float fa = (falloff * 0.5)+1.0;
+    float fa = falloff+1.0;
     float dist_atten = clamp(1.0-(dist-1.0*(1.0-fa))/fa, 0.0, 1.0);
     dist_atten *= dist_atten;
     dist_atten *= 2.0;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
index b546519a7d144709cab8634d9ee57f67bc539eb4..d09bc25334f5dd33127307e1453942221a22d75d 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
@@ -155,7 +155,7 @@ void main()
 	
 	proj_tc.xyz /= proj_tc.w;
 	
-	float fa = (falloff * 0.5)+1.0;
+	float fa = falloff+1.0;
 	float dist_atten = min(1.0-(dist-1.0*(1.0-fa))/fa, 1.0);
 	dist_atten *= dist_atten;
 	dist_atten *= 2.0;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
index f817817f371c52a2be0da215ee78051b58eb505c..9e14c03a962a342ce763c242a3cbc96ff8f66d12 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
@@ -156,8 +156,8 @@ void main()
     {
         vec4 shd = texture2DRect(lightMap, frag.xy);
         shadow = (proj_shadow_idx==0)?shd.b:shd.a;
-        shadow = clamp(shadow, 0.0, 1.0);
         shadow += shadow_fade;
+        shadow = clamp(shadow, 0.0, 1.0);        
     }
     
     vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
@@ -177,7 +177,7 @@ void main()
     
     proj_tc.xyz /= proj_tc.w;
     
-    float fa = (falloff * 0.5)+1.0;
+    float fa = falloff+1.0;
     float dist_atten = min(1.0-(dist-1.0*(1.0-fa))/fa, 1.0);
     dist_atten *= dist_atten;
     dist_atten *= 2.0;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
index 510d1ca9fd2a3c7851db58ccb6be5a1398413d59..93b55ab9c17bea3344e2cc7b0e687080daa1cca7 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
@@ -156,8 +156,8 @@ void main()
 	{
 		vec4 shd = texture2DRect(lightMap, frag.xy);
         shadow = (proj_shadow_idx == 0) ? shd.b : shd.a;
-		shadow = clamp(shadow, 0.0, 1.0);
         shadow += shadow_fade;
+		shadow = clamp(shadow, 0.0, 1.0);        
 	}
 	
 	vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
@@ -175,7 +175,7 @@ void main()
 	
 	proj_tc.xyz /= proj_tc.w;
 	
-	float fa = (falloff * 0.5) + 1.0;
+	float fa = falloff + 1.0;
 	float dist_atten = min(1.0 - (dist - 1.0 * (1.0 - fa)) / fa, 1.0);
 	dist_atten *= dist_atten;
 	dist_atten *= 2.0;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl
index dec9afcfb79915592be930b1f4e8bb33ac548f7b..abb6a3a5d8aaa8d139d3e6c199058fff79865d7f 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl
@@ -157,8 +157,8 @@ void main()
     {
         vec4 shd = texture2DRect(lightMap, frag.xy);
         shadow = (proj_shadow_idx == 0) ? shd.b : shd.a;
-        shadow = clamp(shadow, 0.0, 1.0);
         shadow += shadow_fade;
+        shadow = clamp(shadow, 0.0, 1.0);        
     }
     
     vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl
index 6a813cac153802b395f614fa11080d2e5bada9cf..afc542b8bc6e25d353e5213bbd0df609753849c9 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl
@@ -157,8 +157,8 @@ void main()
     {
         vec4 shd = texture2DRect(lightMap, frag.xy);
         shadow = (proj_shadow_idx == 0) ? shd.b : shd.a;
-        shadow = clamp(shadow, 0.0, 1.0);
         shadow += shadow_fade;
+        shadow = clamp(shadow, 0.0, 1.0);
     }
     
     vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 4ddd9c45689ace551658266273c677d862d07430..b4b3e19abccd49864d4187ccff279e417ec8802c 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -3278,18 +3278,14 @@ void LLVOVolume::updateSpotLightPriority()
     F32 r = getLightRadius();
 	LLVector3 pos = mDrawable->getPositionAgent();
 
-#if OLD_SPOT_PRIO_CALC
 	LLVector3 at(0,0,-1);
 	at *= getRenderRotation();
 	pos += at * r;
 
 	at = LLViewerCamera::getInstance()->getAtAxis();
 	pos -= at * r;
-	
+
 	mSpotLightPriority = gPipeline.calcPixelArea(pos, LLVector3(r,r,r), *LLViewerCamera::getInstance());
-#else
-    mSpotLightPriority = (gAgent.getPositionAgent() - pos).length() + r;
-#endif
 
 	if (mLightTexture.notNull())
 	{
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 658410fd3da8ccd63875ed25de731790bbef7fef..4c93d16fb1edbcaa80509a3ebe135f5f041e9b5e 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -8703,7 +8703,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
                     LLVector4a center;
                     center.load3(drawablep->getPositionAgent().mV);
                     const F32* c = center.getF32ptr();
-                    F32 s = volume->getLightRadius();
+                    F32 s = volume->getLightRadius()*1.5f;
 
                     LLColor3 col = volume->getLightColor();
                     
@@ -8750,7 +8750,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
                             gDeferredLightProgram.uniform3fv(LLShaderMgr::LIGHT_CENTER, 1, c);
                             gDeferredLightProgram.uniform1f(LLShaderMgr::LIGHT_SIZE, s);
                             gDeferredLightProgram.uniform3fv(LLShaderMgr::DIFFUSE_COLOR, 1, col.mV);
-                            gDeferredLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff());
+                            gDeferredLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff()*0.5f);
                             gGL.syncMatrices();
                             
                             mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, get_box_fan_indices(camera, center));
@@ -8770,7 +8770,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
                         mat.mult_matrix_vec(tc);
                     
                         fullscreen_lights.push_back(LLVector4(tc.v[0], tc.v[1], tc.v[2], s));
-                        light_colors.push_back(LLVector4(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()));
+                        light_colors.push_back(LLVector4(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()*0.5f));
                     }
                 }
                 unbindDeferredShader(gDeferredLightProgram);
@@ -8795,7 +8795,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
                     LLVector4a center;
                     center.load3(drawablep->getPositionAgent().mV);
                     const F32* c = center.getF32ptr();
-                    F32 s = volume->getLightRadius();
+                    F32 s = volume->getLightRadius()*1.5f;
 
                     sVisibleLightCount++;
 
@@ -8809,7 +8809,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
                     gDeferredSpotLightProgram.uniform3fv(LLShaderMgr::LIGHT_CENTER, 1, c);
                     gDeferredSpotLightProgram.uniform1f(LLShaderMgr::LIGHT_SIZE, s);
                     gDeferredSpotLightProgram.uniform3fv(LLShaderMgr::DIFFUSE_COLOR, 1, col.mV);
-                    gDeferredSpotLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff());
+                    gDeferredSpotLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff()*0.5f);
                     gGL.syncMatrices();
                                         
                     mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, get_box_fan_indices(camera, center));
@@ -8888,7 +8888,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
 
                     LLVector3 center = drawablep->getPositionAgent();
                     F32* c = center.mV;
-                    F32 s = volume->getLightRadius();
+                    F32 s = volume->getLightRadius()*1.5f;
 
                     sVisibleLightCount++;
 
@@ -8906,7 +8906,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
                     gDeferredMultiSpotLightProgram.uniform3fv(LLShaderMgr::LIGHT_CENTER, 1, tc.v);
                     gDeferredMultiSpotLightProgram.uniform1f(LLShaderMgr::LIGHT_SIZE, s);
                     gDeferredMultiSpotLightProgram.uniform3fv(LLShaderMgr::DIFFUSE_COLOR, 1, col.mV);
-                    gDeferredMultiSpotLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff());
+                    gDeferredMultiSpotLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff()*0.5f);
                     mDeferredVB->drawArrays(LLRender::TRIANGLES, 0, 3);
                 }