diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index fa6b3b9..d8e2c4c 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -1401,12 +1401,16 @@
     return value < 0 ? -1 : (value > 0);
 }
 
+static int sign(SkScalar x) { return x < 0 ? -1 : 1; }
+
 static int CrossProductSign(const SkVector& a, const SkVector& b) {
     return SkScalarSign(SkPoint::CrossProduct(a, b));
 }
 
 // only valid for a single contour
 struct Convexicator {
+    int fDx, fDy, fSx, fSy;
+
     Convexicator() : fPtCount(0), fConvexity(SkPath::kUnknown_Convexity) {
         fSign = 0;
         // warnings
@@ -1414,6 +1418,9 @@
         fVec0.set(0, 0);
         fVec1.set(0, 0);
         fFirstVec.set(0, 0);
+
+        fDx = fDy = 0;
+        fSx = fSy = 2;
     }
 
     SkPath::Convexity getConvexity() const { return fConvexity; }
@@ -1436,6 +1443,17 @@
                     SkASSERT(fPtCount > 2);
                     this->addVec(vec);
                 }
+                
+                int sx = sign(vec.fX);
+                int sy = sign(vec.fY);
+                fDx += (sx != fSx);
+                fDy += (sy != fSy);
+                fSx = sx;
+                fSy = sy;
+                
+                if (fDx > 3 || fDy > 3) {
+                    fConvexity = SkPath::kConcave_Convexity;
+                }
             }
         }
     }
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index 82f230d..3884308 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -86,7 +86,7 @@
     spiral.lineTo(.5,.5);
     spiral.lineTo(.5,.75);
     spiral.close();
-//    check_convexity(reporter, spiral, SkPath::kConcave_Convexity);
+    check_convexity(reporter, spiral, SkPath::kConcave_Convexity);
     
     SkPath dent;
     dent.moveTo(0, 0);
@@ -157,7 +157,7 @@
     } gRec[] = {
         { "0 0", SkPath::kUnknown_Convexity },
         { "0 0 10 10", SkPath::kUnknown_Convexity },
-        { "0 0 10 10 20 20 0 0 10 10", SkPath::kUnknown_Convexity },
+        { "0 0 10 10 20 20 0 0 10 10", SkPath::kConcave_Convexity },
         { "0 0 10 10 10 20", SkPath::kConvex_Convexity },
         { "0 0 10 10 10 0", SkPath::kConvex_Convexity },
         { "0 0 10 10 10 0 0 10", SkPath::kConcave_Convexity },
