diff --git a/MagickCore/image.c b/MagickCore/image.c
index 742d480..c31f1a3 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -2433,6 +2433,9 @@
       PixelInfo
         background;
 
+      PixelInfo
+        pixel;
+
       ssize_t
         y;
 
@@ -2443,7 +2446,9 @@
         break;
       if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
         break;
-      background=image->background_color;
+      GetPixelInfo(image,&background);
+      SetPixelInfoPacket(image,&image->background_color,&background);
+      SetPacketPixelInfo(image,&background,&pixel);
       image_view=AcquireCacheView(image);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
       #pragma omp parallel for schedule(dynamic,4) shared(status)
@@ -2501,7 +2506,8 @@
           /*
             Reset all color channels to background color.
           */
-          background=image->background_color;
+          GetPixelInfo(image,&background);
+          SetPixelInfoPacket(image,&(image->background_color),&background);
           (void) LevelImageColors(image,&background,&background,MagickTrue,
             exception);
         }
@@ -2583,6 +2589,9 @@
   PixelInfo
     background;
 
+  PixelInfo
+    pixel;
+
   ssize_t
     y;
 
@@ -2595,11 +2604,13 @@
   if (image->background_color.alpha != OpaqueAlpha)
     image->matte=MagickTrue;
   GetPixelInfo(image,&background);
-  background=image->background_color;
+  SetPixelInfoPacket(image,&image->background_color,&background);
+  SetPacketPixelInfo(image,&background,&pixel);
   /*
     Set image background color.
   */
   status=MagickTrue;
+  pixel.black=0;
   image_view=AcquireCacheView(image);
   for (y=0; y < (ssize_t) image->rows; y++)
   {