--- gimp/app/operations/gimpoperationlchlightnessmode.c.bak.is	2015-08-20 00:42:26.133705672 +0200
+++ gimp/app/operations/gimpoperationlchlightnessmode.c	2015-08-20 15:34:56.823444519 +0200
@@ -98,16 +98,23 @@
                        gfloat       *out,
                        glong         samples)
 {
-  gfloat tmp[2 * samples], *layer_lab = tmp;
+  gfloat tmp1[2 * samples], *layer_Y = tmp1;
+  gfloat tmp2[2 * samples], *in_Y = tmp2;
   gint   i;
 
-  babl_process (babl_fish (format, "CIE Lab alpha float"), in, out, samples);
-  babl_process (babl_fish (format, "CIE L alpha float"), layer, layer_lab, samples);
+  babl_process (babl_fish (format, "RGBA float"), in, out, samples);
+  babl_process (babl_fish (format, "YA float"), layer, layer_Y, samples);
+  babl_process (babl_fish (format, "YA float"), in, in_Y, samples);
 
   for (i = 0; i < samples; ++i)
-    out[4 * i] = layer_lab[2 * i];
+    {
+        gfloat ratio = layer_Y[2 * i] / MAX(in_Y[2 * i], 0.0000000000000000001);
+        out[4 * i] *= ratio;  
+        out[4 * i + 1] *= ratio;  
+        out[4 * i + 2] *= ratio;  
+    }
 
-  babl_process (babl_fish ("CIE Lab alpha float", format), out, out, samples);
+  babl_process (babl_fish ("RGBA float", format), out, out, samples);
 }
 
 static void
