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