diff --git a/neercs/video/remanency.lolfx b/neercs/video/remanency.lolfx
index 38e6d37..dc9fb7a 100644
--- a/neercs/video/remanency.lolfx
+++ b/neercs/video/remanency.lolfx
@@ -18,6 +18,13 @@ uniform vec2 mix;
 
 void main(void)
 {
-    gl_FragColor = texture2D(source,gl_TexCoord[0].xy)*mix.x+texture2D(buffer,gl_TexCoord[0].xy)*mix.y;
+    vec4 old_color = texture2D(buffer, gl_TexCoord[0].xy);
+    vec4 new_color = texture2D(source, gl_TexCoord[0].xy);
+
+    /* The old way */
+    //gl_FragColor = new_color * mix.x + old_color * mix.y;
+
+    /* The new way: if new_color > old_color we want faster updates */
+    gl_FragColor = max(new_color, new_color * mix.x + old_color * mix.y);
 }