diff --git a/src/finn/transformation/fpgadataflow/cleanup.py b/src/finn/transformation/fpgadataflow/cleanup.py
index 941b845df540956b6f5f9ed196ba7bcb2c724386..0f62e568b2b92e4a83a34f303ed5a3f9dd71fa13 100644
--- a/src/finn/transformation/fpgadataflow/cleanup.py
+++ b/src/finn/transformation/fpgadataflow/cleanup.py
@@ -13,6 +13,11 @@ class CleanUp(Transformation):
         super().__init__()
 
     def apply(self, model):
+        # delete IP stitching project, if any
+        ipstitch_path = model.get_metadata_prop("vivado_proj")
+        if ipstitch_path is not None and os.path.isdir(ipstitch_path):
+            shutil.rmtree(ipstitch_path)
+            model.set_metadata_prop("vivado_proj", "")
         for node in model.graph.node:
             op_type = node.op_type
             if node.domain == "finn":