diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c
index e50e1ab..f860aa7 100644
--- a/MagickCore/quantize.c
+++ b/MagickCore/quantize.c
@@ -3251,8 +3251,8 @@
 
   color_1=(PixelInfo *) x;
   color_2=(PixelInfo *) y;
-  intensity=GetPixelInfoIntensity(color_1)-(ssize_t)
-    GetPixelInfoIntensity(color_2);
+  intensity=(ssize_t) (GetPixelInfoIntensity(color_1)-(ssize_t)
+    GetPixelInfoIntensity(color_2));
   return((int) intensity);
 }
 
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 6ccc6d0..bb121c7 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -1384,7 +1384,7 @@
         threshold=(ssize_t) (QuantumScale*q[i]*(levels[n]*(map->divisor-1)+1));
         level=threshold/(map->divisor-1);
         threshold-=level*(map->divisor-1);
-        q[i]=ClampToQuantum((level+(threshold >=
+        q[i]=ClampToQuantum((double) (level+(threshold >=
           map->levels[(x % map->width)+map->width*(y % map->height)]))*
           QuantumRange/levels[n]);
         n++;
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index 3a63767..d2c0156 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -2236,11 +2236,11 @@
       break;
     for (x=0; x < (int) image->columns; x++)
     {
-      color.red=(double) ClampToQuantum((red_map[i][j][
+      color.red=(double) ClampToQuantum((double) (red_map[i][j][
         (int) ScaleQuantumToChar(GetPixelRed(image,p))] << 8));
-      color.green=(double) ClampToQuantum((green_map[i][j][
+      color.green=(double) ClampToQuantum((double) (green_map[i][j][
         (int) ScaleQuantumToChar(GetPixelGreen(image,p))] << 8));
-      color.blue=(double) ClampToQuantum((blue_map[i][j][
+      color.blue=(double) ClampToQuantum((double) (blue_map[i][j][
         (int) ScaleQuantumToChar(GetPixelBlue(image,p))] << 8));
       pixel=(size_t) (((size_t) color.red & 0xe0) |
         (((size_t) color.green & 0xe0) >> 3) |
