diff --git a/indra/newview/app_settings/shaders/class1/deferred/SSAOF.glsl b/indra/newview/app_settings/shaders/class1/deferred/SSAOF.glsl
index 0c0a7792795732a5362e5acd158708c9c260bc90..ee070b8d4f85558468ec077252e2c5cd511c38a1 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/SSAOF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/SSAOF.glsl
@@ -43,6 +43,13 @@ uniform float ssao_factor;
 uniform vec2 kern_scale;
 uniform vec2 noise_scale;
 
+uniform float seconds60;
+
+float rand(vec2 co)
+{
+    return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
+}
+
 vec3 decode_normal (vec2 enc)
 {
     vec2 fenc = enc*4-2;
@@ -102,8 +109,13 @@ float calcAmbientOcclusion(vec4 pos, vec3 norm)
     vec2 samppos_screen = pos_screen + scale * reflect(getKern(i), noise_reflect);
 
     // if sample is out-of-screen then give it no weight by continuing
-    //if (any(lessThan(samppos_screen.xy, vec2(0.0, 0.0))) ||
-    //  any(greaterThan(samppos_screen.xy, vec2(screen_res.xy)))) continue;
+    if (any(lessThan(samppos_screen.xy, vec2(0.0, 0.0))) ||
+      any(greaterThan(samppos_screen.xy, vec2(pos_screen.xy))))
+	{
+		// Try to bring the sample back on screen
+		float rnd1 = rand(pos_screen.xy + vec2(33.0 * (seconds60 + i)));
+		samppos_screen.xy = vec2(rnd1, rand(pos_screen.yx + vec2(55.0 * (seconds60 + i)))) /  kern_scale;
+	}
 
     vec3 samppos_world = getPosition(samppos_screen).xyz; 
 			
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index c9b10509cfece76c43d96221a707329974ff5853..04508dd5f3a4fab660442e1c95fa6f119122f53d 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -7354,7 +7354,6 @@ void LLPipeline::renderBloom(bool for_snapshot, F32 zoom_factor, int subfield)
 				shader->uniform1f(LLShaderMgr::DOF_RES_SCALE, CameraDoFResScale);
 				shader->uniform1f(LLShaderMgr::DOF_WIDTH, CameraDoFResScale - CameraDoFResScale / dof_width);
 				shader->uniform1f(LLShaderMgr::DOF_HEIGHT, CameraDoFResScale - CameraDoFResScale / dof_height);
-				shader->uniform1f(LLShaderMgr::SECONDS60, fmodf(LLTimer::getElapsedSeconds(), 60.f));
 
 				drawFullScreenRect();