diff --git a/gm/p3.cpp b/gm/p3.cpp
index b3b21d6..5801a04 100644
--- a/gm/p3.cpp
+++ b/gm/p3.cpp
@@ -141,7 +141,7 @@
     }
 }
 
-DEF_SIMPLE_GM(p3, canvas, 450, 200) {
+DEF_SIMPLE_GM(p3, canvas, 450, 400) {
     auto p3 = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
                                     SkColorSpace::kDCIP3_D65_Gamut);
 
@@ -185,5 +185,35 @@
         canvas->restore();
     }
 
+    canvas->translate(0,80);
+
+    // Draw an A8 image with the paint color set to P3 red, hitting a sprite case.
+    //    and
+    // Draw a scaled A8 image with the paint color set to P3 red, hitting a non-sprite case.
+    {
+        uint8_t mask[256];
+        for (int i = 0; i < 256; i++) {
+            mask[i] = 255-i;
+        }
+        SkBitmap bm;
+        bm.installPixels(SkImageInfo::MakeA8(16,16), mask, 16);
+
+        SkPaint paint;
+        paint.setFilterQuality(kLow_SkFilterQuality);
+        paint.setColor4f({1,0,0,1}, p3.get());
+
+        canvas->drawBitmap(bm, 10,10, &paint);
+        compare_pixel("A8 sprite P3 red",
+                      canvas, 10,10,
+                      {1,0,0,1}, p3.get());
+
+        canvas->translate(0,80);
+
+        canvas->drawBitmapRect(bm, {10,10,70,70}, &paint);
+        compare_pixel("A8 image P3 red",
+                      canvas, 10,10,
+                      {1,0,0,1}, p3.get());
+    }
+
     // TODO: draw P3 colors more ways
 }
diff --git a/src/core/SkBlitter_Sprite.cpp b/src/core/SkBlitter_Sprite.cpp
index cb88ac4..c31716a 100644
--- a/src/core/SkBlitter_Sprite.cpp
+++ b/src/core/SkBlitter_Sprite.cpp
@@ -112,6 +112,9 @@
         fLeft = left;
         fTop  = top;
 
+        // TODO: confirm that fSource.colorType() is never called with kAlpha_8_SkColorType,
+        // cut that support and the need to handle fPaintColor at all.
+
         // Just like in SkImageShader, we'll keep the paint color as floats in sRGB.
         swizzle_rb(Sk4f_fromL32(paint.getColor())).store(fPaintColor.vec());
 
@@ -134,6 +137,7 @@
                                             p.append(SkRasterPipeline::force_opaque     ); break;
             default: SkASSERT(false);
         }
+
         if (fSource.colorType() == kAlpha_8_SkColorType) {
             // The color for A8 images comes from the (sRGB) paint color.
             p.append(SkRasterPipeline::set_rgb, &fPaintColor);
diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp
index 28c569f..df0b043 100644
--- a/src/shaders/SkImageShader.cpp
+++ b/src/shaders/SkImageShader.cpp
@@ -384,6 +384,8 @@
         // to do the color space transformation.  Might be possible to streamline.
         if (info.colorType() == kAlpha_8_SkColorType) {
             // The color for A8 images comes from the (sRGB) paint color.
+            // TODO: confirm that this is only ever called with the paint color set to black,
+            // then drop this step and the color correction below.
             p->append(SkRasterPipeline::set_rgb, &misc->paint_color);
             p->append(SkRasterPipeline::premul);
         } else if (info.alphaType() == kUnpremul_SkAlphaType) {
