diff --git a/packages/component-submit/src/components/Confirm.js b/packages/component-submit/src/components/Confirm.js
index 7ed6c6f079c46c8f81c86a6c7fb787f1eb9de5c4..39bf22db4cf7cefd4e7bcb286ff9fc47638fa31c 100644
--- a/packages/component-submit/src/components/Confirm.js
+++ b/packages/component-submit/src/components/Confirm.js
@@ -1,31 +1,35 @@
 import React from 'react'
-import { Link } from 'react-router'
+import { Button } from 'xpub-ui'
 import classes from './Confirm.local.css'
 
-const Confirm = ({ project, version, confirmSubmission }) => (
-  <article>
-    <h1 className={classes.heading}>
-      By submitting the manuscript, you agree to the following statements.
-    </h1>
+const Confirm = ({ toggleConfirming }) => (
+  <div className={classes.root}>
+    <article>
+      <h1 className={classes.heading}>
+        By submitting the manuscript, you agree to the following statements.
+      </h1>
 
-    <p>The corresponding author confirms that all co-authors are included, and that everyone listed as a co-author agrees to that role and all the following requirements and acknowledgements.</p>
+      <p>The corresponding author confirms that all co-authors are included, and that everyone listed as a co-author agrees to that role and all the following requirements and acknowledgements.</p>
 
-    <p>The submission represents original work and that sources are given proper attribution. (The journal employs <a href="https://www.crossref.org/services/similarity-check/" target="_blank" rel="noopener noreferrer">CrossCheck</a> to compare submissions against a large and growing database of published scholarly content. If in the judgment of a senior editor a submission is genuinely suspected of plagiarism, it will be returned to the author(s) with a request for explanation.)</p>
+      <p>The submission represents original work and that sources are given proper attribution. (The journal employs <a href="https://www.crossref.org/services/similarity-check/" target="_blank" rel="noopener noreferrer">CrossCheck</a> to compare submissions against a large and growing database of published scholarly content. If in the judgment of a senior editor a submission is genuinely suspected of plagiarism, it will be returned to the author(s) with a request for explanation.)</p>
 
-    <p>The research was conducted in accordance with ethical principles.</p>
+      <p>The research was conducted in accordance with ethical principles.</p>
 
-    <p>There is a Data Accessibility Statement, containing information about the location of open data and materials, in the manuscript.</p>
+      <p>There is a Data Accessibility Statement, containing information about the location of open data and materials, in the manuscript.</p>
 
-    <p>A conflict of interest statement is present in the manuscript, even if to state no conflicts of interest.</p>
+      <p>A conflict of interest statement is present in the manuscript, even if to state no conflicts of interest.</p>
 
-    <div className={classes.actions}>
-      <button onClick={confirmSubmission}>Submit your manuscript</button>
-      <span className={classes.actionDivider}> or </span>
-      <Link
-        className={classes.cancelLink}
-        to={`/projects/${project.id}/submit`}>get back to your submission</Link>
-    </div>
-  </article>
+      <div className={classes.actions}>
+        <button type="submit">
+          Submit your manuscript
+        </button>
+        <span className={classes.actionDivider}> or </span>
+        <Button onClick={toggleConfirming}>
+          get back to your submission
+        </Button>
+      </div>
+    </article>
+  </div>
 )
 
 export default Confirm
diff --git a/packages/component-submit/src/components/Confirm.local.css b/packages/component-submit/src/components/Confirm.local.css
index c2955e9e7b79013b549041408bdeb42d0603c6fc..4becaf9e4c6ca6565e9421a317a82131b262a70e 100644
--- a/packages/component-submit/src/components/Confirm.local.css
+++ b/packages/component-submit/src/components/Confirm.local.css
@@ -1,11 +1,11 @@
-.heading {
+.root {
+  max-width: 60em;
+  padding: 4rem;
+  background: white;
+  max-height: 100%;
+  overflow-y: auto;
 }
 
-/*.actions {
-  display: flex;
-  justify-content: space-between;
-}*/
-
 .actionDivider {
   margin: 0 20px;
 }
diff --git a/packages/component-submit/src/components/Metadata.js b/packages/component-submit/src/components/Metadata.js
index 8e70bfb5d19b294288559c484a9ca5f888313650..5fa94307a63fce8938f5e4b02952e6cb812a32cd 100644
--- a/packages/component-submit/src/components/Metadata.js
+++ b/packages/component-submit/src/components/Metadata.js
@@ -5,7 +5,7 @@ import { CheckboxGroup, Menu, TextField, ValidatedField } from 'xpub-ui'
 import classes from './Metadata.local.css'
 import { join, required, minChars, maxChars, minSize, split } from '../lib/validators'
 
-const Metadata = ({ journal, validators }) => (
+const Metadata = ({ journal }) => (
   <FormSection name="metadata">
     <div className={classes.section} id="metadata.title">
       <Field
diff --git a/packages/component-submit/src/components/Submit.js b/packages/component-submit/src/components/Submit.js
index 6e36e2c2c73f927850300958c4b069ad05ac73c7..f7c888d73fb0a376558c40f2819988431cb2eca5 100644
--- a/packages/component-submit/src/components/Submit.js
+++ b/packages/component-submit/src/components/Submit.js
@@ -1,16 +1,19 @@
 import React from 'react'
+import classnames from 'classnames'
 import { Link } from 'react-router'
 import { Button } from 'xpub-ui'
-import classes from './Submit.local.css'
 import Metadata from './Metadata'
 import Declarations from './Declarations'
 import Suggestions from './Suggestions'
 import Notes from './Notes'
 import SupplementaryFiles from './SupplementaryFiles'
 import Confirm from './Confirm'
+import classes from './Submit.local.css'
 
-const Submit = ({ journal, project, version, valid, pristine, submitting, handleSubmit, uploadFile }) => (
-  <div className={classes.root}>
+const Submit = ({ journal, project, version, valid, pristine, submitting, handleSubmit, uploadFile, confirming, toggleConfirming }) => (
+  <div className={classnames(classes.root, {
+    [classes.confirming]: confirming
+  })}>
     <div className={classes.title}>
       Submission information
     </div>
@@ -27,14 +30,23 @@ const Submit = ({ journal, project, version, valid, pristine, submitting, handle
       <Suggestions/>
       <Notes/>
       <SupplementaryFiles uploadFile={uploadFile}/>
+
       <div>
         <Button
-          type="submit"
-          disabled={pristine || submitting || !valid}>Submit your manuscript</Button>
+          type="button"
+          onClick={toggleConfirming}
+          // disabled={pristine || submitting || !valid}
+        >
+          Submit your manuscript
+        </Button>
       </div>
-    </form>
 
-    <Confirm project={project} version={version}/>
+      {confirming && (
+        <div className={classes.confirm}>
+          <Confirm toggleConfirming={toggleConfirming}/>
+        </div>
+      )}
+    </form>
   </div>
 )
 
diff --git a/packages/component-submit/src/components/Submit.local.css b/packages/component-submit/src/components/Submit.local.css
index 840b917f467b24cee4a2f8a2b5a4ad7ba704e8d9..54dcf1412bdfa04854ec79b6549b3b9e22d8bde6 100644
--- a/packages/component-submit/src/components/Submit.local.css
+++ b/packages/component-submit/src/components/Submit.local.css
@@ -7,3 +7,19 @@
   font-size: 150%;
   font-weight: bold;
 }
+
+.confirm {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background: rgba(255, 255, 255, 0.95);
+}
+
+.confirming {
+  overflow: hidden;
+}
diff --git a/packages/component-submit/src/components/SubmitPage.js b/packages/component-submit/src/components/SubmitPage.js
index e606276b583592602b0fc4da097cad96fb305ede..d78d51f354a27389b0f4a476eeb2fea997ae9b0f 100644
--- a/packages/component-submit/src/components/SubmitPage.js
+++ b/packages/component-submit/src/components/SubmitPage.js
@@ -1,6 +1,7 @@
 /* global CONFIG */
 
-import { compose } from 'recompose'
+import { pick } from 'lodash'
+import { compose, withState, withHandlers } from 'recompose'
 import { connect } from 'react-redux'
 import { reduxForm } from 'redux-form'
 import actions from 'pubsweet-client/src/actions'
@@ -40,21 +41,36 @@ export default compose(
     actions.getCollection({ id: params.project }),
     actions.getFragment({ id: params.project }, { id: params.version })
   ]),
+  withJournal,
   connect(
     (state, ownProps) => {
-      const project = selectCollection(state, ownProps.params.project)
       const version = selectFragment(state, ownProps.params.version)
+      const paths = ['metadata', 'declarations', 'suggestions', 'notes', 'files']
 
-      return { project, version, initialValues: version }
-    },
+      return {
+        initialValues: pick(version, paths)
+      }
+    }
+  ),
+  connect(
+    (state, ownProps) => ({
+        project: selectCollection(state, ownProps.params.project),
+        version: selectFragment(state, ownProps.params.version)
+    }),
     {
       uploadFile
     }
   ),
   reduxForm({
     form: 'submit',
+    // enableReinitialize: true,
     onSubmit,
     onChange
   }),
-  withJournal
+  withState('confirming', 'setConfirming', false),
+  withHandlers({
+    toggleConfirming: props => () => {
+      props.setConfirming(confirming => !confirming)
+    }
+  })
 )(Submit)
diff --git a/packages/xpub-ui/src/atoms/Button.js b/packages/xpub-ui/src/atoms/Button.js
index 052c070638685f2c5acb38db731fb6973034bbb5..ade503f390ab7acbace2df5f4bad831122dec2dd 100644
--- a/packages/xpub-ui/src/atoms/Button.js
+++ b/packages/xpub-ui/src/atoms/Button.js
@@ -1,9 +1,10 @@
 import React from 'react'
 
-const Button = ({ children, type = 'button', disabled}) => (
+const Button = ({ children, type = 'button', disabled, onClick}) => (
   <button
     type={type}
-    disabled={disabled}>{children}</button>
+    disabled={disabled}
+    onClick={onClick}>{children}</button>
 )
 
 export default Button