diff --git a/coders/bmp.c b/coders/bmp.c
index 972cf17..4cf51c1 100644
--- a/coders/bmp.c
+++ b/coders/bmp.c
@@ -1033,7 +1033,7 @@
                 break;
             }
         }
-        (void) SyncImage(image);
+        (void) SyncImage(image,exception);
         break;
       }
       case 4:
@@ -1074,7 +1074,7 @@
                 break;
             }
         }
-        (void) SyncImage(image);
+        (void) SyncImage(image,exception);
         break;
       }
       case 8:
@@ -1108,7 +1108,7 @@
                 break;
             }
         }
-        (void) SyncImage(image);
+        (void) SyncImage(image,exception);
         break;
       }
       case 16:
diff --git a/coders/caption.c b/coders/caption.c
index ace8255..dc70688 100644
--- a/coders/caption.c
+++ b/coders/caption.c
@@ -199,7 +199,7 @@
   if (image->rows == 0)
     image->rows=(size_t) ((i+1)*draw_info->pointsize+
       draw_info->interline_spacing+draw_info->stroke_width+0.5);
-  if (SetImageBackgroundColor(image) == MagickFalse)
+  if (SetImageBackgroundColor(image,exception) == MagickFalse)
     {
       InheritException(exception,&image->exception);
       image=DestroyImageList(image);
diff --git a/coders/cut.c b/coders/cut.c
index 6c4c977..f504d27 100644
--- a/coders/cut.c
+++ b/coders/cut.c
@@ -555,7 +555,7 @@
 
       InsertRow(depth,BImgBuff,i,image);
     }
-  (void) SyncImage(image);
+  (void) SyncImage(image,exception);
 
 
   /*detect monochrome image*/
diff --git a/coders/dib.c b/coders/dib.c
index 8e7f19c..38ac86b 100644
--- a/coders/dib.c
+++ b/coders/dib.c
@@ -680,7 +680,7 @@
               break;
           }
       }
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       break;
     }
     case 4:
@@ -721,7 +721,7 @@
               break;
           }
       }
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       break;
     }
     case 8:
@@ -755,7 +755,7 @@
               break;
           }
       }
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       break;
     }
     case 16:
diff --git a/coders/djvu.c b/coders/djvu.c
index 2a664c8..8a96229 100644
--- a/coders/djvu.c
+++ b/coders/djvu.c
@@ -416,7 +416,7 @@
                                         break;
                         }
                 if (!image->ping)
-                  SyncImage(image);
+                  SyncImage(image,&image->exception);
         } else {
 #if DEBUG
                 printf("%s: expanding PHOTO page/image\n", __FUNCTION__);
@@ -693,7 +693,7 @@
 #endif
 
         if (!image->ping)
-          SyncImage(image);
+          SyncImage(image,exception);
         /* mmc: ??? Convert PNM pixels to runlength-encoded MIFF packets. */
         /* image->colors =  */
 
diff --git a/coders/dps.c b/coders/dps.c
index 7dcdb09..ce11ba0 100644
--- a/coders/dps.c
+++ b/coders/dps.c
@@ -465,7 +465,7 @@
   colors=(XColor *) RelinquishMagickMemory(colors);
   XDestroyImage(dps_image);
   if (image->storage_class == PseudoClass)
-    (void) SyncImage(image);
+    (void) SyncImage(image,exception);
   /*
     Rasterize matte image.
   */
diff --git a/coders/histogram.c b/coders/histogram.c
index d39769b..722f11b 100644
--- a/coders/histogram.c
+++ b/coders/histogram.c
@@ -294,7 +294,7 @@
   */
   (void) QueryColorCompliance("#000000",AllCompliance,
     &histogram_image->background_color,exception);
-  (void) SetImageBackgroundColor(histogram_image);
+  (void) SetImageBackgroundColor(histogram_image,exception);
   for (x=0; x < (ssize_t) histogram_image->columns; x++)
   {
     q=GetAuthenticPixels(histogram_image,x,0,1,histogram_image->rows,exception);
diff --git a/coders/icon.c b/coders/icon.c
index 29226c7..98de3b7 100644
--- a/coders/icon.c
+++ b/coders/icon.c
@@ -585,7 +585,7 @@
             ThrowReaderException(CorruptImageError,"ImproperImageHeader");
         }
         if (image_info->ping == MagickFalse)
-          (void) SyncImage(image);
+          (void) SyncImage(image,exception);
         if (icon_info.bits_per_pixel != 32)
           {
             /*
diff --git a/coders/label.c b/coders/label.c
index c97acd1..8f12061 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -190,7 +190,7 @@
   if (image->rows == 0)
     image->rows=(size_t) floor(draw_info->pointsize+draw_info->stroke_width+
       0.5);
-  if (SetImageBackgroundColor(image) == MagickFalse)
+  if (SetImageBackgroundColor(image,exception) == MagickFalse)
     {
       InheritException(exception,&image->exception);
       image=DestroyImageList(image);
diff --git a/coders/meta.c b/coders/meta.c
index 850026e..40f4964 100644
--- a/coders/meta.c
+++ b/coders/meta.c
@@ -1102,9 +1102,8 @@
     }
   image->columns=1;
   image->rows=1;
-  if (SetImageBackgroundColor(image) == MagickFalse)
+  if (SetImageBackgroundColor(image,exception) == MagickFalse)
     {
-      InheritException(exception,&image->exception);
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
diff --git a/coders/mono.c b/coders/mono.c
index bcb0410..e1ee647 100644
--- a/coders/mono.c
+++ b/coders/mono.c
@@ -181,7 +181,7 @@
     if (status == MagickFalse)
       break;
   }
-  (void) SyncImage(image);
+  (void) SyncImage(image,exception);
   if (EOFBlob(image) != MagickFalse)
     ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
       image->filename);
diff --git a/coders/msl.c b/coders/msl.c
index 6b55131..8e7b0b0 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -7082,7 +7082,7 @@
                 }
               }
             }
-          (void) SyncImage(msl_info->image[n]);
+          (void) SyncImage(msl_info->image[n],&exception);
           break;
         }
       ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
diff --git a/coders/mvg.c b/coders/mvg.c
index 9245a7b..dcf27c3 100644
--- a/coders/mvg.c
+++ b/coders/mvg.c
@@ -189,9 +189,8 @@
     DefaultResolution;
   image->columns=(size_t) (draw_info->affine.sx*image->columns);
   image->rows=(size_t) (draw_info->affine.sy*image->rows);
-  if (SetImageBackgroundColor(image) == MagickFalse)
+  if (SetImageBackgroundColor(image,exception) == MagickFalse)
     {
-      InheritException(exception,&image->exception);
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
diff --git a/coders/otb.c b/coders/otb.c
index 9c7ef2d..bd08177 100644
--- a/coders/otb.c
+++ b/coders/otb.c
@@ -198,7 +198,7 @@
           break;
       }
   }
-  (void) SyncImage(image);
+  (void) SyncImage(image,exception);
   if (EOFBlob(image) != MagickFalse)
     ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
       image->filename);
diff --git a/coders/pattern.c b/coders/pattern.c
index f9dd536..5bacf70 100644
--- a/coders/pattern.c
+++ b/coders/pattern.c
@@ -990,7 +990,7 @@
       pattern_image=image;
       image=AcquireImage(blob_info,exception);
       image->background_color=pattern_image->background_color;
-      (void) SetImageBackgroundColor(image);
+      (void) SetImageBackgroundColor(image,exception);
       (void) TextureImage(image,pattern_image,exception);
       pattern_image=DestroyImage(pattern_image);
     }
diff --git a/coders/pcx.c b/coders/pcx.c
index 14b4fb8..712d9e0 100644
--- a/coders/pcx.c
+++ b/coders/pcx.c
@@ -623,7 +623,7 @@
         }
     }
     if (image->storage_class == PseudoClass)
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
     scanline=(unsigned char *) RelinquishMagickMemory(scanline);
     if (pcx_colormap != (unsigned char *) NULL)
       pcx_colormap=(unsigned char *) RelinquishMagickMemory(pcx_colormap);
diff --git a/coders/pdb.c b/coders/pdb.c
index a014d1c..2a0f2a8 100644
--- a/coders/pdb.c
+++ b/coders/pdb.c
@@ -453,7 +453,7 @@
         if (status == MagickFalse)
           break;
       }
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       break;
     }
     case 2:
@@ -489,7 +489,7 @@
         if (status == MagickFalse)
           break;
       }
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       break;
     }
     case 4:
@@ -519,7 +519,7 @@
         if (status == MagickFalse)
           break;
       }
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       break;
     }
     default:
diff --git a/coders/pict.c b/coders/pict.c
index eb3721e..4a805ff 100644
--- a/coders/pict.c
+++ b/coders/pict.c
@@ -930,7 +930,7 @@
               break;
             image->columns=1UL*(frame.right-frame.left);
             image->rows=1UL*(frame.bottom-frame.top);
-            (void) SetImageBackgroundColor(image);
+            (void) SetImageBackgroundColor(image,exception);
             break;
           }
           case 0x12:
diff --git a/coders/pix.c b/coders/pix.c
index 0797845..fe0c09b 100644
--- a/coders/pix.c
+++ b/coders/pix.c
@@ -202,7 +202,7 @@
         }
     }
     if (image->storage_class == PseudoClass)
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
     if (EOFBlob(image) != MagickFalse)
       {
         ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
diff --git a/coders/png.c b/coders/png.c
index 458d23f..e67d684 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -3215,7 +3215,7 @@
 
       matte=image->matte;
       image->matte=MagickFalse;
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       image->matte=matte;
     }
 
@@ -3227,7 +3227,7 @@
       png_destroy_read_struct(&ping,&ping_info,&end_info);
       ping_pixels=(unsigned char *) RelinquishMagickMemory(ping_pixels);
       image->colors=2;
-      (void) SetImageBackgroundColor(image);
+      (void) SetImageBackgroundColor(image,exception);
 #if defined(PNG_SETJMP_NOT_THREAD_SAFE)
       UnlockSemaphoreInfo(ping_semaphore);
 #endif
@@ -3272,7 +3272,7 @@
                  }
               }
             }
-          (void) SyncImage(image);
+          (void) SyncImage(image,exception);
         }
 
 #if 1 /* Should have already been done above, but glennrp problem P10
@@ -5372,7 +5372,7 @@
                 image->background_color=mng_background_color;
                 image->matte=MagickFalse;
                 image->delay=0;
-                (void) SetImageBackgroundColor(image);
+                (void) SetImageBackgroundColor(image,exception);
 
                 if (logging != MagickFalse)
                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -5926,7 +5926,7 @@
                 image->page.x=0;
                 image->page.y=0;
                 image->background_color=mng_background_color;
-                (void) SetImageBackgroundColor(image);
+                (void) SetImageBackgroundColor(image,exception);
                 if (logging != MagickFalse)
                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                     "  Inserted transparent background layer, W=%.20g, H=%.20g",
@@ -5979,7 +5979,7 @@
             image->page.y=mng_info->clip.top;
             image->background_color=mng_background_color;
             image->matte=MagickFalse;
-            (void) SetImageBackgroundColor(image);
+            (void) SetImageBackgroundColor(image,exception);
 
             if (logging != MagickFalse)
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -6242,12 +6242,12 @@
 #endif
 
                 if (image->matte != MagickFalse)
-                   (void) SetImageBackgroundColor(large_image);
+                   (void) SetImageBackgroundColor(large_image,exception);
 
                 else
                   {
                     large_image->background_color.alpha=OpaqueAlpha;
-                    (void) SetImageBackgroundColor(large_image);
+                    (void) SetImageBackgroundColor(large_image,exception);
 
                     if (magn_methx == 4)
                       magn_methx=2;
@@ -6700,7 +6700,7 @@
                 image->columns=1;
                 image->rows=1;
                 image->colors=2;
-                (void) SetImageBackgroundColor(image);
+                (void) SetImageBackgroundColor(image,exception);
                 image->page.width=1;
                 image->page.height=1;
                 image->page.x=0;
@@ -6786,7 +6786,7 @@
       image->matte=MagickFalse;
 
       if (image_info->ping == MagickFalse)
-        (void) SetImageBackgroundColor(image);
+        (void) SetImageBackgroundColor(image,exception);
 
       mng_info->image_found++;
     }
@@ -7717,7 +7717,7 @@
      (mng_info->write_png_colortype != 0 &&
      mng_info->write_png_colortype != 4)))
     {
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
       image->storage_class = DirectClass;
     }
 
@@ -7742,7 +7742,7 @@
     the colors in the colormap.  This code syncs the RGB values.
   */
   if (image->depth <= 8 && image->taint && image->storage_class == PseudoClass)
-     (void) SyncImage(image);
+     (void) SyncImage(image,exception);
 
 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
   if (image->depth > 8)
@@ -11000,7 +11000,7 @@
       else
         (void) SetImageType(image,TrueColorType,exception);
 
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
     }
 
   if (mng_info->write_png32)
@@ -11015,7 +11015,7 @@
       else
         (void) SetImageType(image,TrueColorType,exception);
 
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
     }
 
   value=GetImageOption(image_info,"png:bit-depth");
diff --git a/coders/psd.c b/coders/psd.c
index 1206660..f6d0c6b 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -824,7 +824,7 @@
   image->depth=psd_info.depth;
   image->columns=psd_info.columns;
   image->rows=psd_info.rows;
-  if (SetImageBackgroundColor(image) == MagickFalse)
+  if (SetImageBackgroundColor(image,exception) == MagickFalse)
     {
       InheritException(exception,&image->exception);
       image=DestroyImageList(image);
@@ -1206,7 +1206,7 @@
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                 "    setting up new layer image");
             if (image_info->ping != MagickFalse)
-              (void) SetImageBackgroundColor(layer_info[i].image);
+              (void) SetImageBackgroundColor(layer_info[i].image,exception);
             layer_info[i].image->compose=
               PSDBlendModeToCompositeOperator(layer_info[i].blendkey);
             if (layer_info[i].visible == MagickFalse)
diff --git a/coders/rle.c b/coders/rle.c
index 20f2ac3e..61c3bda 100644
--- a/coders/rle.c
+++ b/coders/rle.c
@@ -515,7 +515,7 @@
                     break;
                 }
             }
-            (void) SyncImage(image);
+            (void) SyncImage(image,exception);
           }
         else
           {
diff --git a/coders/sgi.c b/coders/sgi.c
index 90ba848..33aeb05 100644
--- a/coders/sgi.c
+++ b/coders/sgi.c
@@ -664,7 +664,7 @@
                   break;
               }
           }
-        (void) SyncImage(image);
+        (void) SyncImage(image,exception);
       }
     iris_pixels=(unsigned char *) RelinquishMagickMemory(iris_pixels);
     if (EOFBlob(image) != MagickFalse)
diff --git a/coders/stegano.c b/coders/stegano.c
index c5922d5..a0fdd3a 100644
--- a/coders/stegano.c
+++ b/coders/stegano.c
@@ -230,7 +230,7 @@
       break;
   }
   watermark=DestroyImage(watermark);
-  (void) SyncImage(image);
+  (void) SyncImage(image,exception);
   return(GetFirstImageInList(image));
 }
 
diff --git a/coders/sun.c b/coders/sun.c
index 673b5ad..f7ec8b9 100644
--- a/coders/sun.c
+++ b/coders/sun.c
@@ -564,7 +564,7 @@
           }
         }
     if (image->storage_class == PseudoClass)
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
     sun_pixels=(unsigned char *) RelinquishMagickMemory(sun_pixels);
     if (EOFBlob(image) != MagickFalse)
       {
diff --git a/coders/svg.c b/coders/svg.c
index e67152d..b860c85 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -2888,7 +2888,7 @@
               ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
             }
 #endif
-          (void) SetImageBackgroundColor(image);
+          (void) SetImageBackgroundColor(image,exception);
 #if defined(MAGICKCORE_CAIRO_DELEGATE)
           cairo_surface=cairo_image_surface_create_for_data(pixels,
             CAIRO_FORMAT_ARGB32,image->columns,image->rows,4*image->columns);
diff --git a/coders/tile.c b/coders/tile.c
index fc7a1c7..a5d4cf1 100644
--- a/coders/tile.c
+++ b/coders/tile.c
@@ -118,7 +118,7 @@
     ThrowReaderException(OptionError,"MustSpecifyAnImageName");
   image->matte=tile_image->matte;
   if (image->matte != MagickFalse)
-    (void) SetImageBackgroundColor(image);
+    (void) SetImageBackgroundColor(image,exception);
   (void) CopyMagickString(image->filename,image_info->filename,MaxTextExtent);
   if (LocaleCompare(tile_image->magick,"PATTERN") == 0)
     {
diff --git a/coders/tim.c b/coders/tim.c
index 3e49e9d..9fbfc36 100644
--- a/coders/tim.c
+++ b/coders/tim.c
@@ -382,7 +382,7 @@
         ThrowReaderException(CorruptImageError,"ImproperImageHeader");
     }
     if (image->storage_class == PseudoClass)
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
     tim_pixels=(unsigned char *) RelinquishMagickMemory(tim_pixels);
     if (EOFBlob(image) != MagickFalse)
       {
diff --git a/coders/txt.c b/coders/txt.c
index d86cadf..b001c70 100644
--- a/coders/txt.c
+++ b/coders/txt.c
@@ -245,7 +245,7 @@
   /*
     Annotate the text image.
   */
-  (void) SetImageBackgroundColor(image);
+  (void) SetImageBackgroundColor(image,exception);
   draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
   (void) CloneString(&draw_info->text,image_info->filename);
   (void) FormatLocaleString(geometry,MaxTextExtent,"0x0%+ld%+ld",(long) page.x,
@@ -308,7 +308,7 @@
     image->next->rows=image->rows;
     image=SyncNextImageInList(image);
     (void) CopyMagickString(image->filename,filename,MaxTextExtent);
-    (void) SetImageBackgroundColor(image);
+    (void) SetImageBackgroundColor(image,exception);
     status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
       GetBlobSize(image));
     if (status == MagickFalse)
@@ -443,7 +443,7 @@
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
     image->colorspace=(ColorspaceType) type;
     (void) ResetMagickMemory(&pixel,0,sizeof(pixel));
-    (void) SetImageBackgroundColor(image);
+    (void) SetImageBackgroundColor(image,exception);
     range=GetQuantumRange(image->depth);
     for (y=0; y < (ssize_t) image->rows; y++)
     {
diff --git a/coders/viff.c b/coders/viff.c
index 0241ad0..e828c04 100644
--- a/coders/viff.c
+++ b/coders/viff.c
@@ -724,7 +724,7 @@
         }
     viff_pixels=(unsigned char *) RelinquishMagickMemory(viff_pixels);
     if (image->storage_class == PseudoClass)
-      (void) SyncImage(image);
+      (void) SyncImage(image,exception);
     if (EOFBlob(image) != MagickFalse)
       {
         ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
diff --git a/coders/wbmp.c b/coders/wbmp.c
index 89f4370..1d64cfa 100644
--- a/coders/wbmp.c
+++ b/coders/wbmp.c
@@ -212,7 +212,7 @@
     if (status == MagickFalse)
       break;
   }
-  (void) SyncImage(image);
+  (void) SyncImage(image,exception);
   if (EOFBlob(image) != MagickFalse)
     ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
       image->filename);
diff --git a/coders/xbm.c b/coders/xbm.c
index c5ccffc..e4f3035 100644
--- a/coders/xbm.c
+++ b/coders/xbm.c
@@ -376,7 +376,7 @@
       break;
   }
   data=(unsigned char *) RelinquishMagickMemory(data);
-  (void) SyncImage(image);
+  (void) SyncImage(image,exception);
   (void) CloseBlob(image);
   return(GetFirstImageInList(image));
 }
diff --git a/coders/xcf.c b/coders/xcf.c
index 6c5b890..53d86b7 100644
--- a/coders/xcf.c
+++ b/coders/xcf.c
@@ -880,7 +880,7 @@
   /* clear the image based on the layer opacity */
   outLayer->image->background_color.alpha=
     ScaleCharToQuantum((unsigned char) (255-outLayer->alpha));    
-  (void) SetImageBackgroundColor(outLayer->image);
+  (void) SetImageBackgroundColor(outLayer->image,exception);
 
   /* set the compositing mode */
   outLayer->image->compose = GIMPBlendModeToCompositeOperator( outLayer->mode );
@@ -1040,7 +1040,7 @@
     else
       if (image_type == GIMP_INDEXED)
         ThrowReaderException(CoderError,"ColormapTypeNotSupported");
-  (void) SetImageBackgroundColor(image);
+  (void) SetImageBackgroundColor(image,exception);
   image->matte=MagickTrue;
   /*
     Read properties.