diff --git a/src/form.ts b/src/form.ts
index 76c5f52bb62f6715597758a2d0c169256afed457..5807e8311f70d82f50abee9fc9c4a447f6d857a5 100644
--- a/src/form.ts
+++ b/src/form.ts
@@ -293,9 +293,11 @@ export function useCopy<T>(state: MaybeRefOrGetter<T>, options: UseCopyOptions<T
   const _save = options?.save
 
   const value = (shallow ? shallowRef() : ref()) as Ref<T>
-  watchEffect(() => {
+  watchEffect(reset)
+
+  function reset() {
     value.value = _clone(toValue(state))
-  })
+  }
 
   function triggerSave() {
     const _value = value.value
@@ -308,7 +310,7 @@ export function useCopy<T>(state: MaybeRefOrGetter<T>, options: UseCopyOptions<T
     watchDebounced(value, triggerSave, { deep: true, debounce })
   }
 
-  return extendRef(value, { triggerSave }, { enumerable: true })
+  return extendRef(value, { triggerSave, reset }, { enumerable: true })
 }
 
 export function useAPIObjectFieldCopy<