diff --git a/resources/static/dialog/resources/state.js b/resources/static/dialog/resources/state.js
index 22a3098e78db35eba06155414b2251cf0a8f3f13..9af733f522347cc61b74b628f33538c0a57b2544 100644
--- a/resources/static/dialog/resources/state.js
+++ b/resources/static/dialog/resources/state.js
@@ -234,7 +234,7 @@ BrowserID.State = (function() {
         startState("doAssertionGenerated", info.assertion);
       }
       else {
-        startState("doPickEmail");
+        publish("pick_email");
       }
     });
 
diff --git a/resources/static/test/cases/resources/state.js b/resources/static/test/cases/resources/state.js
index a9e95a48b27d6f9bcdddb780e85731a8b2c1059c..53c9726695c97d05ee8c092d7e065f3ee2826020 100644
--- a/resources/static/test/cases/resources/state.js
+++ b/resources/static/test/cases/resources/state.js
@@ -358,5 +358,13 @@
 
     equal(error, "invalid email", "expected exception thrown");
   });
+  
+  test("null assertion generated - preserve original options in doPickEmail", function() {
+    mediator.publish("start", { allowPersistent: true });
+    mediator.publish("assertion_generated", { assertion: null });
+
+    equal(actions.called.doPickEmail, true, "doPickEmail callled");
+    equal(actions.info.doPickEmail.allow_persistent, true, "allow_persistent preserved");
+  });
 
 }());