diff --git a/lib/scripts/edit.js b/lib/scripts/edit.js
index 3276c9e06122a405193fa7ebccada2199f9f3389..45c1fb111880fa7d862e13fd82514e64c6025921 100644
--- a/lib/scripts/edit.js
+++ b/lib/scripts/edit.js
@@ -268,6 +268,7 @@ var textChanged = false;
  */
 function deleteDraft() {
     if (is_opera) return;
+    if (window.keepDraft) return;
 
     // remove a possibly saved draft using ajax
     var dwform = $('dw__editform');
@@ -318,8 +319,13 @@ addInitEvent(function (){
     window.onunload = deleteDraft;
 
     // reset change memory var on submit
-    addEvent($('edbtn__save'), 'click', function(){ textChanged = false; });
-    addEvent($('edbtn__preview'), 'click', function(){ textChanged = false; });
+    addEvent($('edbtn__save'), 'click', function(){
+        textChanged = false;
+    });
+    addEvent($('edbtn__preview'), 'click', function(){
+        textChanged = false;
+        window.keepDraft = true; // needed to keep draft on page unload
+    });
 
     var summary = $('edit__summary');
     addEvent(summary, 'change', summaryCheck);