diff --git a/coders/png.c b/coders/png.c
index cf92692..e601a4f 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -2699,6 +2699,9 @@
   image->compression=ZipCompression;
   image->columns=ping_width;
   image->rows=ping_height;
+  if (((int) ping_color_type == PNG_COLOR_TYPE_GRAY) ||
+      ((int) ping_color_type == PNG_COLOR_TYPE_GRAY_ALPHA))
+    image->colorspace=GRAYColorspace;
   if (((int) ping_color_type == PNG_COLOR_TYPE_PALETTE) ||
       ((int) ping_color_type == PNG_COLOR_TYPE_GRAY))
     {
@@ -6745,19 +6748,13 @@
 
 #if (MAGICKCORE_QUANTUM_DEPTH > 16)
       /* PNG does not handle depths greater than 16 so reduce it even
-       * if lossy.
+       * if lossy
        */
       if (image->depth > 16)
          image->depth=16;
 #endif
 
 #if (MAGICKCORE_QUANTUM_DEPTH > 8)
-      if (image->depth > 8)
-        {
-          /* To do: fill low byte properly */
-          image->depth=16;
-        }
-
       if (LosslessReduceDepthOK(image,exception) != MagickFalse)
          image->depth = 8;
 #endif
@@ -7971,12 +7968,6 @@
 #endif
 
 #if (MAGICKCORE_QUANTUM_DEPTH > 8)
-  if (image->depth > 8)
-    {
-      /* To do: fill low byte properly */
-      image->depth=16;
-    }
-
   if (image->depth == 16 && mng_info->write_png_depth != 16)
     if (mng_info->write_png8 || LosslessReduceDepthOK(image,exception) != MagickFalse)
       image->depth = 8;
@@ -11751,9 +11742,6 @@
           (void) CopyMagickString(jpeg_image->magick,"PNG",MaxTextExtent);
           jpeg_image_info->interlace=NoInterlace;
 
-          /* Exclude all ancillary chunks */
-          (void) SetImageArtifact(jpeg_image,"png:exclude-chunks","all");
-
           blob=ImageToBlob(jpeg_image_info,jpeg_image,&length,
             exception);