diff --git a/src/gpu/GrShape.cpp b/src/gpu/GrShape.cpp
index 9636427..91cd3c8 100644
--- a/src/gpu/GrShape.cpp
+++ b/src/gpu/GrShape.cpp
@@ -386,7 +386,6 @@
                                                  scale)) {
             tmpParent.init(*srcForPathEffect, GrStyle(strokeRec, nullptr));
             *this = tmpParent.get()->applyStyle(apply, scale);
-            fOriginalPath = parent.fOriginalPath;
             return;
         }
         // A path effect has access to change the res scale but we aren't expecting it to and it
@@ -498,6 +497,10 @@
     }
     if (Type::kPath != fType) {
         fInheritedKey.reset(0);
+        // Whenever we simplify to a non-path, break the chain so we no longer refer to the
+        // original path. This prevents attaching genID listeners to temporary paths created when
+        // drawing simple shapes.
+        fOriginalPath.reset();
         if (Type::kRRect == fType) {
             this->attemptToSimplifyRRect();
         } else if (Type::kLine == fType) {
diff --git a/src/gpu/GrShape.h b/src/gpu/GrShape.h
index dd8aa85..032c4d5 100644
--- a/src/gpu/GrShape.h
+++ b/src/gpu/GrShape.h
@@ -373,9 +373,11 @@
     void addGenIDChangeListener(SkPathRef::GenIDChangeListener* listener) const;
 
     /**
-     * Gets the generation ID of the *original* path. This is only exposed for unit tests.
+     * Helpers that are only exposed for unit tests, to determine if the shape is a path, and get
+     * the generation ID of the *original* path.
      */
     uint32_t testingOnly_getOriginalGenerationID() const;
+    bool testingOnly_isPath() const;
 
 private:
 
