diff --git a/LottieSample/screenshots/MotionCorpse-Jrcanest 0.png b/LottieSample/screenshots/MotionCorpse-Jrcanest 0.png
index 4c0adbc..cbc9826 100644
--- a/LottieSample/screenshots/MotionCorpse-Jrcanest 0.png
+++ b/LottieSample/screenshots/MotionCorpse-Jrcanest 0.png
Binary files differ
diff --git a/LottieSample/screenshots/MotionCorpse-Jrcanest 10.png b/LottieSample/screenshots/MotionCorpse-Jrcanest 10.png
index e107efa..1cf749e 100644
--- a/LottieSample/screenshots/MotionCorpse-Jrcanest 10.png
+++ b/LottieSample/screenshots/MotionCorpse-Jrcanest 10.png
Binary files differ
diff --git a/LottieSample/screenshots/MotionCorpse-Jrcanest 100.png b/LottieSample/screenshots/MotionCorpse-Jrcanest 100.png
index e04c6f9..6eb89c5 100644
--- a/LottieSample/screenshots/MotionCorpse-Jrcanest 100.png
+++ b/LottieSample/screenshots/MotionCorpse-Jrcanest 100.png
Binary files differ
diff --git a/LottieSample/screenshots/MotionCorpse-Jrcanest 20.png b/LottieSample/screenshots/MotionCorpse-Jrcanest 20.png
index 5b444e1..fff912a 100644
--- a/LottieSample/screenshots/MotionCorpse-Jrcanest 20.png
+++ b/LottieSample/screenshots/MotionCorpse-Jrcanest 20.png
Binary files differ
diff --git a/LottieSample/screenshots/MotionCorpse-Jrcanest 5.png b/LottieSample/screenshots/MotionCorpse-Jrcanest 5.png
index 36de359..10b7a76 100644
--- a/LottieSample/screenshots/MotionCorpse-Jrcanest 5.png
+++ b/LottieSample/screenshots/MotionCorpse-Jrcanest 5.png
Binary files differ
diff --git a/LottieSample/screenshots/MotionCorpse-Jrcanest 50.png b/LottieSample/screenshots/MotionCorpse-Jrcanest 50.png
index ac2f5c3..f2a7d34 100644
--- a/LottieSample/screenshots/MotionCorpse-Jrcanest 50.png
+++ b/LottieSample/screenshots/MotionCorpse-Jrcanest 50.png
Binary files differ
diff --git a/LottieSample/screenshots/Tests_Hosts 20.png b/LottieSample/screenshots/Tests_Hosts 20.png
index d0d0900..41d1d61 100644
--- a/LottieSample/screenshots/Tests_Hosts 20.png
+++ b/LottieSample/screenshots/Tests_Hosts 20.png
Binary files differ
diff --git a/lottie/src/main/java/com/airbnb/lottie/AnimatableShapeValue.java b/lottie/src/main/java/com/airbnb/lottie/AnimatableShapeValue.java
index 12fae44..4240032 100644
--- a/lottie/src/main/java/com/airbnb/lottie/AnimatableShapeValue.java
+++ b/lottie/src/main/java/com/airbnb/lottie/AnimatableShapeValue.java
@@ -106,6 +106,7 @@
       }
 
       shape.addCurve(new CubicCurveData(shapeCp1, shapeCp2, vertex));
+      shape.setClosed(true);
     }
     return shape;
 
diff --git a/lottie/src/main/java/com/airbnb/lottie/MiscUtils.java b/lottie/src/main/java/com/airbnb/lottie/MiscUtils.java
index 41c709c..3930c5a 100644
--- a/lottie/src/main/java/com/airbnb/lottie/MiscUtils.java
+++ b/lottie/src/main/java/com/airbnb/lottie/MiscUtils.java
@@ -19,6 +19,9 @@
           curveData.getControlPoint2().x, curveData.getControlPoint2().y,
           curveData.getVertex().x, curveData.getVertex().y);
     }
+    if (shapeData.isClosed()) {
+      outPath.close();
+    }
   }
 
   static float lerp(float a, float b, @FloatRange(from = 0f, to = 1f) float percentage) {
diff --git a/lottie/src/main/java/com/airbnb/lottie/ShapeData.java b/lottie/src/main/java/com/airbnb/lottie/ShapeData.java
index 828c09b..e4c00c0 100644
--- a/lottie/src/main/java/com/airbnb/lottie/ShapeData.java
+++ b/lottie/src/main/java/com/airbnb/lottie/ShapeData.java
@@ -9,6 +9,7 @@
 class ShapeData {
   private final List<CubicCurveData> curves = new ArrayList<>();
   private PointF initialPoint;
+  private boolean closed;
 
   void setInitialPoint(PointF initialPoint) {
     this.initialPoint = initialPoint;
@@ -29,6 +30,14 @@
     curves.add(curve);
   }
 
+  public boolean isClosed() {
+    return closed;
+  }
+
+  public void setClosed(boolean closed) {
+    this.closed = closed;
+  }
+
   List<CubicCurveData> getCurves() {
     return curves;
   }
@@ -38,6 +47,8 @@
     if (initialPoint == null) {
       initialPoint = new PointF();
     }
+    setClosed(shapeData1.isClosed() || shapeData2.isClosed());
+
     if (!curves.isEmpty() && curves.size() != shapeData1.getCurves().size()
         && curves.size() != shapeData2.getCurves().size()) {
       throw new IllegalStateException("Curves must have the same number of control points. This: "
