diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index 576f348..aae0248 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -503,7 +503,7 @@
     AutoCheckFlush acf(this->drawingManager());
 
     const SkStrokeRec& stroke = style->strokeRec();
-    if (stroke.getStyle() == SkStrokeRec::kFill_Style) {
+    if (stroke.getStyle() == SkStrokeRec::kFill_Style && !paint.numCoverageFragmentProcessors()) {
         // Check if this is a full RT draw and can be replaced with a clear. We don't bother
         // checking cases where the RT is fully inside a stroke.
         SkRect rtRect = fRenderTargetProxy->getBoundsRect();
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
index e0ce22e..07cfdcd 100644
--- a/tests/BlurTest.cpp
+++ b/tests/BlurTest.cpp
@@ -708,3 +708,39 @@
     }
 }
 
+
+///////////////////////////////////////////////////////////////////////////////////////////
+#if SK_SUPPORT_GPU
+
+DEF_GPUTEST_FOR_RENDERING_CONTEXTS(BlurMaskBiggerThanDest, reporter, ctxInfo) {
+    GrContext* context = ctxInfo.grContext();
+
+    SkImageInfo ii = SkImageInfo::Make(32, 32, kRGBA_8888_SkColorType, kPremul_SkAlphaType);
+
+    sk_sp<SkSurface> dst(SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, ii));
+    if (!dst) {
+        ERRORF(reporter, "Could not create surface for test.");
+        return;
+    }
+
+    SkPaint p;
+    p.setColor(SK_ColorRED);
+    p.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 3));
+
+    SkCanvas* canvas = dst->getCanvas();
+
+    canvas->clear(SK_ColorBLACK);
+    canvas->drawCircle(SkPoint::Make(16, 16), 8, p);
+
+    SkBitmap readback;
+    SkAssertResult(readback.tryAllocPixels(ii));
+
+    canvas->readPixels(readback, 0, 0);
+    REPORTER_ASSERT(reporter, SkColorGetR(readback.getColor(15, 15)) > 128);
+    REPORTER_ASSERT(reporter, SkColorGetG(readback.getColor(15, 15)) == 0);
+    REPORTER_ASSERT(reporter, SkColorGetB(readback.getColor(15, 15)) == 0);
+    REPORTER_ASSERT(reporter, readback.getColor(31, 31) == SK_ColorBLACK);
+}
+
+#endif
+
