diff --git a/src/core/SkAnalyticEdge.cpp b/src/core/SkAnalyticEdge.cpp
index 4b7050f..e426d7d 100644
--- a/src/core/SkAnalyticEdge.cpp
+++ b/src/core/SkAnalyticEdge.cpp
@@ -109,14 +109,18 @@
             slope = diffY ? QuickSkFDot6Div((newx - fSnappedX) >> 10, diffY) : SK_MaxS32;
             #ifdef SK_ANALYTIC_AA_GUARD
             slope = dy >> 10 > 0 ? QuickSkFDot6Div(dx >> 10, dy >> 10) : SK_MaxS32;
+            shift = 0;
             #endif
-            if (SkAbs32(dy) >= SK_Fixed1 * 2) { // only snap when dy is large enough
+            if (SkAbs32(dy >> shift) >= SK_Fixed1 * 2) { // only snap when dy is large enough
                 newSnappedY = SkTMin<SkFixed>(fQEdge.fQLastY, SkFixedRoundToFixed(newy));
                 newSnappedX = newx - SkFixedMul(slope, newy - newSnappedY);
             } else {
                 newSnappedY = SkTMin(fQEdge.fQLastY, snapY(newy));
                 newSnappedX = newx;
             }
+            #ifdef SK_ANALYTIC_AA_GUARD
+            shift = fCurveShift;
+            #endif
             dx += fQEdge.fQDDx;
             dy += fQEdge.fQDDy;
         }
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index 81ec118..f281300 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -216,6 +216,20 @@
     canvas->drawPath(path, paint);
 }
 
+static void test_fuzz_crbug_668907() {
+    auto surface(SkSurface::MakeRasterN32Premul(400, 500));
+    SkCanvas* canvas = surface->getCanvas();
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    SkPath path;
+    path.moveTo(SkBits2Float(0x46313741), SkBits2Float(0x3b00e540));  // 11341.8f, 0.00196679f
+    path.quadTo(SkBits2Float(0x41410041), SkBits2Float(0xc1414141), SkBits2Float(0x41414141),
+            SkBits2Float(0x414100ff));  // 12.0626f, -12.0784f, 12.0784f, 12.0627f
+    path.lineTo(SkBits2Float(0x46313741), SkBits2Float(0x3b00e540));  // 11341.8f, 0.00196679f
+    path.close();
+    canvas->drawPath(path, paint);
+}
+
 /**
  * In debug mode, this path was causing an assertion to fail in
  * SkPathStroker::preJoinTo() and, in Release, the use of an unitialized value.
@@ -4415,6 +4429,7 @@
     test_fuzz_crbug_662780();
     test_mask_overflow();
     test_path_crbugskia6003();
+    test_fuzz_crbug_668907();
 
     SkTSize<SkScalar>::Make(3,4);
 
