diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js
index 1accaf54c002c3642a630f53f0620ed16f206e2a..3ad73509bb38957d078a00e46797914f37e5bbc3 100644
--- a/packages/component-manuscript/src/components/utils.js
+++ b/packages/component-manuscript/src/components/utils.js
@@ -3,10 +3,9 @@ import {
   get,
   find,
   omit,
-  chain,
-  merge,
   isEmpty,
   debounce,
+  mergeWith,
   capitalize,
 } from 'lodash'
 
@@ -197,16 +196,18 @@ export const onReviewSubmit = (
 }
 
 const parseRevision = (values, fragment) => {
-  const v = chain(values)
-    .omit('authorForm')
-    .omit(v => v === '')
-    .value()
+  const v = omit(values, 'authorForm')
 
   return {
     ...fragment,
     revision: {
       ...v,
-      metadata: merge(v.metadata, fragment.metadata),
+      metadata: mergeWith(
+        {},
+        fragment.metadata,
+        v.metadata,
+        (obj, src) => (src === '' ? obj : src),
+      ),
     },
   }
 }