diff --git a/src/gpu/GrTessellator.cpp b/src/gpu/GrTessellator.cpp
index 6cd5438..6490920 100644
--- a/src/gpu/GrTessellator.cpp
+++ b/src/gpu/GrTessellator.cpp
@@ -1055,16 +1055,16 @@
     for (;;) {
         if (edge->fPrevEdgeAbove && (edge->fTop == edge->fPrevEdgeAbove->fTop ||
                                      !edge->fPrevEdgeAbove->isLeftOf(edge->fTop))) {
-            merge_edges_above(edge, edge->fPrevEdgeAbove, activeEdges, current, c);
+            merge_edges_above(edge->fPrevEdgeAbove, edge, activeEdges, current, c);
         } else if (edge->fNextEdgeAbove && (edge->fTop == edge->fNextEdgeAbove->fTop ||
                                             !edge->isLeftOf(edge->fNextEdgeAbove->fTop))) {
-            merge_edges_above(edge, edge->fNextEdgeAbove, activeEdges, current, c);
+            merge_edges_above(edge->fNextEdgeAbove, edge, activeEdges, current, c);
         } else if (edge->fPrevEdgeBelow && (edge->fBottom == edge->fPrevEdgeBelow->fBottom ||
                                      !edge->fPrevEdgeBelow->isLeftOf(edge->fBottom))) {
-            merge_edges_below(edge, edge->fPrevEdgeBelow, activeEdges, current, c);
+            merge_edges_below(edge->fPrevEdgeBelow, edge, activeEdges, current, c);
         } else if (edge->fNextEdgeBelow && (edge->fBottom == edge->fNextEdgeBelow->fBottom ||
                                             !edge->isLeftOf(edge->fNextEdgeBelow->fBottom))) {
-            merge_edges_below(edge, edge->fNextEdgeBelow, activeEdges, current, c);
+            merge_edges_below(edge->fNextEdgeBelow, edge, activeEdges, current, c);
         } else {
             break;
         }
diff --git a/tests/TessellatingPathRendererTests.cpp b/tests/TessellatingPathRendererTests.cpp
index a991376..0c7a5ca 100644
--- a/tests/TessellatingPathRendererTests.cpp
+++ b/tests/TessellatingPathRendererTests.cpp
@@ -560,7 +560,7 @@
     return path;
 }
 
-// Reduction from crbug.com/851409.
+// Reduction from crbug.com/851409. Exercises collinear last vertex.
 static SkPath create_path_39() {
     SkPath path;
     path.moveTo(2072553216, 0);
@@ -571,6 +571,18 @@
     return path;
 }
 
+// Another reduction from crbug.com/851409. Exercises two sequential collinear edges.
+static SkPath create_path_40() {
+    SkPath path;
+    path.moveTo(2072553216, 0);
+    path.lineTo(2072553216, 1);
+    path.lineTo(2072553472, -13);
+    path.lineTo(2072553216, 0);
+    path.lineTo(2072553472, -6);
+    path.lineTo(2072553472, -13);
+    return path;
+}
+
 static std::unique_ptr<GrFragmentProcessor> create_linear_gradient_processor(GrContext* ctx) {
 
     SkPoint pts[2] = { {0, 0}, {1, 1} };
@@ -670,4 +682,5 @@
     test_path(ctx, rtc.get(), create_path_37());
     test_path(ctx, rtc.get(), create_path_38(), SkMatrix(), GrAAType::kCoverage);
     test_path(ctx, rtc.get(), create_path_39());
+    test_path(ctx, rtc.get(), create_path_40());
 }
