diff --git a/MagickCore/log.h b/MagickCore/log.h
index 27bf8af..156e36d 100644
--- a/MagickCore/log.h
+++ b/MagickCore/log.h
@@ -47,12 +47,13 @@
   ImageEvent = 0x00200,
   LocaleEvent = 0x00400,
   ModuleEvent = 0x00800,
-  PolicyEvent = 0x01000,
-  ResourceEvent = 0x02000,
-  TransformEvent = 0x04000,
-  UserEvent = 0x09000,
-  WandEvent = 0x10000,
-  X11Event = 0x20000,
+  PixelEvent = 0x01000,
+  PolicyEvent = 0x02000,
+  ResourceEvent = 0x04000,
+  TransformEvent = 0x08000,
+  UserEvent = 0x10000,
+  WandEvent = 0x20000,
+  X11Event = 0x40000,
   AllEvents = 0x7fffffff
 } LogEventType;
 
diff --git a/MagickCore/option.c b/MagickCore/option.c
index eb0b7b8..5df40c4 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -1198,6 +1198,8 @@
     { "Module", MagickModuleOptions, UndefinedOptionFlag, MagickFalse },
     { "Noise", MagickNoiseOptions, UndefinedOptionFlag, MagickFalse },
     { "Orientation", MagickOrientationOptions, UndefinedOptionFlag, MagickFalse },
+    { "PixelChannel", MagickPixelChannelOptions, UndefinedOptionFlag, MagickFalse },
+    { "PixelTrait", MagickPixelTraitOptions, UndefinedOptionFlag, MagickFalse },
     { "Policy", MagickPolicyOptions, UndefinedOptionFlag, MagickFalse },
     { "PolicyDomain", MagickPolicyDomainOptions, UndefinedOptionFlag, MagickFalse },
     { "PolicyRights", MagickPolicyRightsOptions, UndefinedOptionFlag, MagickFalse },
@@ -1233,6 +1235,7 @@
     { "Locale", LocaleEvent, UndefinedOptionFlag, MagickFalse },
     { "Module", ModuleEvent, UndefinedOptionFlag, MagickFalse },
     { "None", NoEvents, UndefinedOptionFlag, MagickFalse },
+    { "Pixel", PixelEvent, UndefinedOptionFlag, MagickFalse },
     { "Policy", PolicyEvent, UndefinedOptionFlag, MagickFalse },
     { "Resource", ResourceEvent, UndefinedOptionFlag, MagickFalse },
     { "Trace", TraceEvent, UndefinedOptionFlag, MagickFalse },
@@ -1331,6 +1334,36 @@
     { "LeftBottom", LeftBottomOrientation, UndefinedOptionFlag, MagickFalse },
     { (char *) NULL, UndefinedOrientation, UndefinedOptionFlag, MagickFalse }
   },
+  PixelChannelOptions[] =
+  {
+    { "Undefined", UndefinedPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Alpha", AlphaPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Black", BlackPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Blue", BluePixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Cb", CbPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Composite", CompositePixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Cr", CrPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Cyan", CyanPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Gray", GrayPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Green", GreenPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Index", IndexPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Intensity", IntensityPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Magenta", MagentaPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Mask", MaskPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Red", RedPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Sync", SyncPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Y", YPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Yellow", YellowPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { (char *) NULL, UndefinedPixelChannel, UndefinedOptionFlag, MagickFalse }
+  },
+  PixelTraitOptions[] =
+  {
+    { "Undefined", UndefinedPixelTrait, UndefinedOptionFlag, MagickTrue },
+    { "Blend", BlendPixelTrait, UndefinedOptionFlag, MagickFalse },
+    { "Copy", CopyPixelTrait, UndefinedOptionFlag, MagickFalse },
+    { "Update", UpdatePixelTrait, UndefinedOptionFlag, MagickFalse },
+    { (char *) NULL, UndefinedPixelTrait, UndefinedOptionFlag, MagickFalse }
+  },
   PolicyDomainOptions[] =
   {
     { "Undefined", UndefinedPolicyDomain, UndefinedOptionFlag, MagickTrue },
@@ -1818,6 +1851,8 @@
     case MagickMorphologyOptions: return(MorphologyOptions);
     case MagickNoiseOptions: return(NoiseOptions);
     case MagickOrientationOptions: return(OrientationOptions);
+    case MagickPixelChannelOptions: return(PixelChannelOptions);
+    case MagickPixelTraitOptions: return(PixelTraitOptions);
     case MagickPolicyDomainOptions: return(PolicyDomainOptions);
     case MagickPolicyRightsOptions: return(PolicyRightsOptions);
     case MagickPreviewOptions: return(PreviewOptions);
diff --git a/MagickCore/option.h b/MagickCore/option.h
index 732f24e..bbe7ac1 100644
--- a/MagickCore/option.h
+++ b/MagickCore/option.h
@@ -75,6 +75,8 @@
   MagickMorphologyOptions,
   MagickNoiseOptions,
   MagickOrientationOptions,
+  MagickPixelChannelOptions,
+  MagickPixelTraitOptions,
   MagickPolicyOptions,
   MagickPolicyDomainOptions,
   MagickPolicyRightsOptions,
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index c6b42f7..d90c299 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -3560,6 +3560,84 @@
 %    o image: the image.
 %
 */
+
+static void LogPixelChannels(const Image *image)
+{
+  register ssize_t
+    i;
+
+  (void) LogMagickEvent(PixelEvent,GetMagickModule(),"%s[%.20g]",
+    image->filename,(double) image->number_channels);
+  for (i=0; i < (ssize_t) image->number_channels; i++)
+  {
+    char
+      traits[MaxTextExtent];
+
+    const char
+      *channel;
+
+    switch (image->channel_map[i].channel)
+    {
+      case RedPixelChannel:
+      {
+        channel="red";
+        if (image->colorspace == CMYKColorspace)
+          channel="cyan";
+        if (image->colorspace == GRAYColorspace)
+          channel="gray";
+        break;
+      }
+      case GreenPixelChannel:
+      {
+        channel="green";
+        if (image->colorspace == CMYKColorspace)
+          channel="magenta";
+        break;
+      }
+      case BluePixelChannel:
+      {
+        channel="blue";
+        if (image->colorspace == CMYKColorspace)
+          channel="yellow";
+        break;
+      }
+      case BlackPixelChannel:
+      {
+        channel="black";
+        if (image->storage_class == PseudoClass)
+          channel="index";
+        break;
+      }
+      case AlphaPixelChannel:
+      {
+        channel="alpha";
+        break;
+      }
+      case MaskPixelChannel:
+      {
+        channel="mask";
+        break;
+      }
+      default:
+      {
+        channel="undefined";
+      }
+    }
+    *traits='\0';
+    if ((image->channel_map[i].traits & UpdatePixelTrait) != 0)
+      (void) ConcatenateMagickString(traits,"update,",MaxTextExtent);
+    if ((image->channel_map[i].traits & BlendPixelTrait) != 0)
+      (void) ConcatenateMagickString(traits,"blend,",MaxTextExtent);
+    if ((image->channel_map[i].traits & CopyPixelTrait) != 0)
+      (void) ConcatenateMagickString(traits,"copy,",MaxTextExtent);
+    if (*traits == '\0')
+      (void) ConcatenateMagickString(traits,"undefined,",MaxTextExtent);
+    traits[strlen(traits)-1]='\0';
+    (void) LogMagickEvent(PixelEvent,GetMagickModule(),"  %.20g: %s (%s)",
+      (double) i,channel,traits);
+  }
+}
+
 MagickExport void InitializePixelChannelMap(Image *image)
 {
   PixelChannel
@@ -3568,6 +3646,8 @@
   register ssize_t
     i;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   for (i=0; i < (ssize_t) MaxPixelChannels; i++)
   {
     SetPixelChannelMapChannel(image,(PixelChannel) i,(PixelChannel) i);
@@ -3605,6 +3685,8 @@
   image->number_channels+=image->number_meta_channels;
   for ( ; i < (ssize_t) image->number_channels; i++)
     SetPixelChannelMapTraits(image,(PixelChannel) i,CopyPixelTrait);
+  if (image->debug != MagickFalse)
+    LogPixelChannels(image);
   (void) SetPixelChannelMask(image,image->channel_mask);
 }
 
@@ -5330,6 +5412,8 @@
     SetPixelChannelMapTraits(image,(PixelChannel) i,UndefinedPixelTrait);
   if (image->storage_class == PseudoClass)
     SetPixelChannelMapTraits(image,IndexPixelChannel,CopyPixelTrait);
+  if (image->debug != MagickFalse)
+    LogPixelChannels(image);
 }
 
 /*
diff --git a/MagickCore/pixel.h b/MagickCore/pixel.h
index 5258c58..32bb087 100644
--- a/MagickCore/pixel.h
+++ b/MagickCore/pixel.h
@@ -43,6 +43,7 @@
 
 typedef enum
 {
+  UndefinedPixelChannel = 0,
   RedPixelChannel = 0,
   CyanPixelChannel = 0,
   GrayPixelChannel = 0,
diff --git a/MagickCore/version.h b/MagickCore/version.h
index ca147bd..4456bb8 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -34,7 +34,7 @@
 #define MagickLibAddendum  "-0"
 #define MagickLibInterface  7
 #define MagickLibMinInterface  7
-#define MagickReleaseDate  "2011-10-22"
+#define MagickReleaseDate  "2011-10-23"
 #define MagickChangeDate   "20110801"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #if defined(MAGICKCORE_OPENMP_SUPPORT)