Don’t reset when calling buildPath.
diff --git a/src/shapes/path.cpp b/src/shapes/path.cpp
index 942cf86..520c88b 100644
--- a/src/shapes/path.cpp
+++ b/src/shapes/path.cpp
@@ -43,7 +43,6 @@
 const Mat2D& Path::pathTransform() const { return worldTransform(); }
 
 void Path::buildPath(CommandPath& commandPath) const {
-    commandPath.reset();
 
     const bool isClosed = isPathClosed();
     const std::vector<PathVertex*>& vertices = m_Vertices;
@@ -216,6 +215,10 @@
 
     assert(m_CommandPath != nullptr);
     if (hasDirt(value, ComponentDirt::Path)) {
+        // Build path doesn't explicitly reset because we use it to concatenate
+        // multiple built paths into a single command path (like the hit
+        // tester).
+        m_CommandPath->reset();
         buildPath(*m_CommandPath);
     }
     // if (hasDirt(value, ComponentDirt::WorldTransform) && m_Shape != nullptr)