diff --git a/models/res_partner.py b/models/res_partner.py
index 2afba025125c37b6491e0b162e73a990da65113b..53f8e46ec96fcd54d80df9e8d2962104f88f8cd2 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -400,10 +400,26 @@ class ResPartner(models.Model):
                 inpi_data.formality.content.personneMorale.composition.pouvoirs
             )
 
+            # create new director
             for pouvoir in inpi_pouvoirs:
                 self.env["cgscop.inpi.director"].maj_from_inpi(
                     scop_id=self, inpi_pouvoir=pouvoir
                 )
+
+            # remove old
+            directors = self.env["cgscop.inpi.director"].search(
+                [
+                    ("partner_id", "=", self.id),
+                ]
+            )
+            for director in directors:
+                director_found = False
+                for pouvoir in inpi_pouvoirs:
+                    if pouvoir.individu.descriptionPersonne.nom == director.name:
+                        director_found = True
+                        break
+                if not director_found:
+                    director.unlink()
         else:
             logger.info(_(f"No dirigeants found for {self.name}: {self.siren}"))