diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py
index 645d6cd431545e363c627bbfd4f69bdfe45e48f7..69820493f54b97bde4829bbde1df4f11d0b0f402 100644
--- a/opentech/apply/funds/models.py
+++ b/opentech/apply/funds/models.py
@@ -771,6 +771,7 @@ class ApplicationSubmission(WorkflowHelpers, BaseStreamForm, AbstractFormSubmiss
                 revision = self.draft_revision
                 revision.form_data = self.form_data
                 revision.author = by
+                revision.save()
 
             if draft:
                 self.form_data = self.live_revision.form_data
diff --git a/opentech/apply/funds/tests/test_views.py b/opentech/apply/funds/tests/test_views.py
index f58b9a3deb0579cb561d669405abf76bee544ab6..14eb31ae93efe41ad12bb37f015676e13b1aa7d4 100644
--- a/opentech/apply/funds/tests/test_views.py
+++ b/opentech/apply/funds/tests/test_views.py
@@ -147,6 +147,27 @@ class TestRevisionsView(BaseSubmissionViewTestCase):
         self.assertEqual(submission.draft_revision.author, self.user)
         self.assertDictEqual(submission.live_revision.form_data, old_data)
 
+    def test_existing_draft_edit_and_submit(self):
+        submission = ApplicationSubmissionFactory(status='draft_proposal', workflow_stages=2, user=self.user)
+        draft_data = submission.raw_data.copy()
+        draft_data[submission.must_include['title']] = 'New title'
+        self.post_page(submission, {'save': True, **draft_data}, 'edit')
+
+        submission = self.refresh(submission)
+
+        new_title = 'Newer title'
+        draft_data[submission.must_include['title']] = new_title
+        self.post_page(submission, {'submit': True, **draft_data}, 'edit')
+
+        submission = self.refresh(submission)
+
+        self.maxDiff = None
+        self.assertEqual(submission.revisions.count(), 2)
+        self.assertDictEqual(submission.draft_revision.form_data, submission.from_draft().form_data)
+        self.assertDictEqual(submission.live_revision.form_data, submission.form_data)
+
+        self.assertEqual(submission.title, new_title)
+
 
 class TestRevisionList(BaseSubmissionViewTestCase):
     base_view_name = 'revisions:list'