diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py
index 59fdc1db8ed13d4af317567fbe308fc8a9dadcc9..bf2926c0e5d8b9901a2962fd89d60c2501942229 100644
--- a/opentech/apply/funds/models.py
+++ b/opentech/apply/funds/models.py
@@ -745,7 +745,12 @@ class ApplicationSubmission(WorkflowHelpers, BaseStreamForm, AbstractFormSubmiss
         self.clean_submission()
         current_data = ApplicationSubmission.objects.get(id=self.id).form_data
         if current_data != self.form_data:
-            revision = ApplicationRevision.objects.create(submission=self, form_data=self.form_data)
+            if self.live_revision == self.draft_revision:
+                revision = ApplicationRevision.objects.create(submission=self, form_data=self.form_data)
+            else:
+                revision = self.draft_revision
+                revision.form_data = self.form_data
+
             if draft:
                 self.form_data = self.live_revision.form_data
             else:
diff --git a/opentech/apply/funds/tests/test_models.py b/opentech/apply/funds/tests/test_models.py
index 9a41315381b6353fac6c2f5094c278e34fa124d0..22d1c9cde4e3a41c9be93a3e330ae418b0955300 100644
--- a/opentech/apply/funds/tests/test_models.py
+++ b/opentech/apply/funds/tests/test_models.py
@@ -405,3 +405,15 @@ class TestApplicationSubmission(TestCase):
 
         submission = self.refresh(submission)
         self.assertNotEqual(submission.title, title)
+
+    def test_draft_updated(self):
+        submission = ApplicationSubmissionFactory()
+        title = 'My new title'
+        submission.form_data = {'title': title}
+        submission.create_revision(draft=True)
+        self.assertEqual(submission.revisions.count(), 2)
+
+        title = 'My even newer title'
+        submission.form_data = {'title': title}
+        submission.create_revision(draft=True)
+        self.assertEqual(submission.revisions.count(), 2)