...
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 6b877be..49a9840 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -907,6 +907,7 @@
   status=MagickTrue;
   progress=0;
   width=GetOptimalKernelWidth2D(radius,sigma);
+printf("%d\n",width);
   mid=(ssize_t) width/2L;
   image_view=AcquireVirtualCacheView(image,exception);
   blur_view=AcquireAuthenticCacheView(blur_image,exception);
@@ -989,14 +990,15 @@
               {
                 n=p+(ssize_t) GetPixelChannels(image)*width*(mid-v)+
                   GetPixelChannels(image)*(mid-u);
-                weight=BlurGaussian(QuantumScale*(n[i]-p[i]),intensity_sigma)*
-                  BlurGaussian(BlurDistance(x,y,x+u-mid,y+v-mid),spatial_sigma);
-                pixel+=weight*QuantumScale*n[i];
+                weight=BlurGaussian(ScaleQuantumToChar(n[i])-(ssize_t)
+                  ScaleQuantumToChar(p[i]),intensity_sigma)*BlurGaussian(
+                  BlurDistance(x,y,x+u-mid,y+v-mid),spatial_sigma);
+                pixel+=weight*n[i];
                 gamma+=weight;
               }
             }
             SetPixelChannel(blur_image,channel,ClampToQuantum(
-              QuantumRange*PerceptibleReciprocal(gamma)*pixel),q);
+              PerceptibleReciprocal(gamma)*pixel),q);
             continue;
           }
         /*
@@ -1014,13 +1016,14 @@
               GetPixelChannels(image)*(mid-u);
             alpha=(double) (QuantumScale*GetPixelAlpha(image,p));
             beta=(double) (QuantumScale*GetPixelAlpha(image,n));
-            weight=BlurGaussian(QuantumScale*(n[i]-p[i]),intensity_sigma)*
-              BlurGaussian(BlurDistance(x,y,x+u-mid,y+v-mid),spatial_sigma);
-            pixel+=weight*QuantumScale*n[i];
+            weight=BlurGaussian(ScaleQuantumToChar(n[i])-(ssize_t)
+              ScaleQuantumToChar(p[i]),intensity_sigma)*BlurGaussian(
+              BlurDistance(x,y,x+u-mid,y+v-mid),spatial_sigma);
+            pixel+=weight*n[i];
             gamma+=weight*alpha*beta;
           }
         }
-        SetPixelChannel(blur_image,channel,ClampToQuantum(QuantumRange*
+        SetPixelChannel(blur_image,channel,ClampToQuantum(
           PerceptibleReciprocal(gamma)*pixel),q);
       }
       q+=GetPixelChannels(blur_image);