diff --git a/ivette/src/dome/renderer/layout/forms.tsx b/ivette/src/dome/renderer/layout/forms.tsx
index 242c885b0ed3d78ab3122a5ee5ec6b62942a49dd..ffb497983ea5e19551ed5efce66742d73100307b 100644
--- a/ivette/src/dome/renderer/layout/forms.tsx
+++ b/ivette/src/dome/renderer/layout/forms.tsx
@@ -341,11 +341,13 @@ export function useBuffer<A>(
       setModified(!isReset);
       setBuffer(newValue);
       setBerror(newError);
-      if (isReset && !compare(equal, newValue, value)) {
+      if (compare(equal, rollback, newValue)) {
+        setModified(false);
+      } else if (isReset && !compare(equal, newValue, value)) {
         setCommited(false);
         onChanged(newValue, newError, isReset);
       }
-    }, [equal, value, onChanged]);
+    }, [equal, value, rollback, onChanged]);
 
   return {
     value: modified || !commited ? buffer : value,