| Index: src/images/SkImageDecoder_libpng.cpp | 
| diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp | 
| index b6aa329104288aead5ae32f788e0f80b9aba153d..4d5006dbda11f7e664a058e81d46d1094a1c5e1f 100644 | 
| --- a/src/images/SkImageDecoder_libpng.cpp | 
| +++ b/src/images/SkImageDecoder_libpng.cpp | 
| @@ -535,9 +535,13 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr, | 
| *configp = SkBitmap::kARGB_8888_Config; | 
| } | 
| } else { | 
| -            if (*configp != SkBitmap::kRGB_565_Config && | 
| -                *configp != SkBitmap::kARGB_4444_Config && | 
| -                *configp != SkBitmap::kA8_Config) { | 
| +            if (SkBitmap::kA8_Config == *configp) { | 
| +                if (k8BitGray_SrcDepth != srcDepth) { | 
| +                    // Converting a non grayscale image to A8 is not currently supported. | 
| +                    *configp = SkBitmap::kARGB_8888_Config; | 
| +                } | 
| +            } else if (*configp != SkBitmap::kRGB_565_Config && | 
| +                       *configp != SkBitmap::kARGB_4444_Config) { | 
| *configp = SkBitmap::kARGB_8888_Config; | 
| } | 
| } | 
|  |