diff --git a/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx b/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx
index 2f644f323df84a112f2b8b67d70f8c13df1d63b3..89bc2ad3e9d3bfea261bd494e0fd249e671c6e1a 100644
--- a/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx
+++ b/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx
@@ -20,14 +20,18 @@ export const DsfrInputCheckboxes = defineComponent(<T extends string>(props: Pro
   watch(
     () => props.elements,
     () => {
-      values.value = props.elements
+      const newValue = props.elements
         .filter(element => {
           return props.initialCheckedValue.includes(element.itemId)
         })
         .map(({ itemId }) => {
           return itemId
         })
-      props.valueChanged(values.value)
+
+      if (newValue.length !== values.value.length || newValue.some(v => !values.value.includes(v))) {
+        values.value = newValue
+        props.valueChanged(values.value)
+      }
     },
     { deep: true }
   )