diff --git a/browserid/static/js/pages/signin.js b/browserid/static/js/pages/signin.js
index 4eca01bd74779481a34a6554104850d85366261f..703413cd3f59411366b6aba697c69e137518e8c9 100644
--- a/browserid/static/js/pages/signin.js
+++ b/browserid/static/js/pages/signin.js
@@ -41,9 +41,22 @@
       network = bid.Network,
       validation = bid.Validation;
 
+  function prefillEmail() {
+    // If the user tried to sign in on the sign up page with an existing email, 
+    // place that email in the email field, then focus the password.
+    var email = window.localStorage.signInEmail;
+    if (email) {
+      $("#email").val(email);
+      window.localStorage.removeItem('signInEmail');
+      $("#password").focus();
+    }
+  }
+
   bid.signIn = function () {
     $("form input[autofocus]").focus();
 
+    prefillEmail();
+
     $("#signUpForm").bind("submit", function(event) {
       event.preventDefault();
 
diff --git a/browserid/static/js/pages/signup.js b/browserid/static/js/pages/signup.js
index e27707db7a59cfe12f6327537126a90fad429451..c60e3f01e88fb2145528ca7e67bf5dd254f2d04d 100644
--- a/browserid/static/js/pages/signup.js
+++ b/browserid/static/js/pages/signup.js
@@ -87,6 +87,7 @@
           else {
             $('#registeredEmail').html(email);
             showNotice(".alreadyRegistered");
+            window.localStorage.signInEmail = email;
           }
         }, onFailure);
       });