diff --git a/magick/effect.c b/magick/effect.c
index 5057448..c4c37ff 100644
--- a/magick/effect.c
+++ b/magick/effect.c
@@ -316,7 +316,7 @@
         v;
 
       gamma=0.0;
-      i=(long) ceil(width*QuantumScale*PixelIntensity(r)-0.5);
+      i=(long) ceil((double) width*QuantumScale*PixelIntensity(r)-0.5);
       if (i < 0)
         i=0;
       else
@@ -631,7 +631,8 @@
         v;
 
       gamma=0.0;
-      i=(long) ceil(width*(QuantumRange-QuantumScale*PixelIntensity(r))-0.5);
+      i=(long) ceil((double) width*(QuantumRange-QuantumScale*
+        PixelIntensity(r))-0.5);
       if (i < 0)
         i=0;
       else
@@ -3167,8 +3168,8 @@
   point.y=(double) width*cos(DegreesToRadians(angle));
   for (i=0; i < (long) width; i++)
   {
-    offset[i].x=(long) ceil((i*point.y)/hypot(point.x,point.y)-0.5);
-    offset[i].y=(long) ceil((i*point.x)/hypot(point.x,point.y)-0.5);
+    offset[i].x=(long) ceil((double) (i*point.y)/hypot(point.x,point.y)-0.5);
+    offset[i].y=(long) ceil((double) (i*point.x)/hypot(point.x,point.y)-0.5);
   }
   /*
     Motion blur image.