diff --git a/resources/static/dialog/controllers/dialog.js b/resources/static/dialog/controllers/dialog.js
index 8517051de8de1f1a1224a80d8bc3a4ebbcffe364..8fbc31ce67dee8db48bbac55611a4a4a08ab03b0 100644
--- a/resources/static/dialog/controllers/dialog.js
+++ b/resources/static/dialog/controllers/dialog.js
@@ -132,7 +132,11 @@ BrowserID.Modules.Dialog = (function() {
 
       // verify params
       try {
-        params.requiredEmail = paramsFromRP.requiredEmail;
+        if (typeof(paramsFromRP.requiredEmail) !== "undefined") {
+          if (!bid.verifyEmail(paramsFromRP.requiredEmail))
+            throw "invalid requiredEmail: ("+paramsFromRP.requiredEmail+")";
+          params.requiredEmail = paramsFromRP.requiredEmail;
+        }
         if (paramsFromRP.tosURL && paramsFromRP.privacyURL) {
           params.tosURL = fixupURL(origin_url, paramsFromRP.tosURL);
           params.privacyURL = fixupURL(origin_url, paramsFromRP.privacyURL);
diff --git a/resources/static/dialog/resources/state.js b/resources/static/dialog/resources/state.js
index 288dd0e0864e3a5668cb994c21ad197b31154542..6ef339ce5c1ee158618a81a9dc00b81cff81430d 100644
--- a/resources/static/dialog/resources/state.js
+++ b/resources/static/dialog/resources/state.js
@@ -46,11 +46,7 @@ BrowserID.State = (function() {
       self.tosURL = info.tosURL;
       requiredEmail = info.requiredEmail;
 
-      if ((typeof(requiredEmail) !== "undefined") && (!bid.verifyEmail(requiredEmail))) {
-        // Invalid format
-        startAction("doError", "invalid_required_email", {email: requiredEmail});
-      }
-      else if (info.email && info.type === "primary") {
+      if (info.email && info.type === "primary") {
         primaryVerificationInfo = info;
         redirectToState("primary_user", info);
       }