diff --git a/resources/static/dialog/controllers/pick_email.js b/resources/static/dialog/controllers/pick_email.js
index ce39bd9fde150e60c7595c6f1056a8f3c75fd969..71afe58f40d826a63ad1239d4f8a2f45fdcc20c0 100644
--- a/resources/static/dialog/controllers/pick_email.js
+++ b/resources/static/dialog/controllers/pick_email.js
@@ -65,6 +65,13 @@ BrowserID.Modules.PickEmail = (function() {
     return identities;
   }
 
+  function selectEmail(event) {
+    var target = dom.getAttr(event.currentTarget, "for");
+    if(target) {
+      dom.setAttr("#" + target, "checked", "checked");
+    }
+  }
+
   var Module = bid.Modules.PageModule.extend({
     start: function(options) {
       var origin = user.getOrigin(),
@@ -91,6 +98,7 @@ BrowserID.Modules.PickEmail = (function() {
       }
 
       self.bind("#useNewEmail", "click", cancelEvent(addEmail));
+      self.bind("#selectEmail label", "click", selectEmail);
 
       sc.start.call(self, options);
 
diff --git a/resources/static/test/cases/controllers/pick_email.js b/resources/static/test/cases/controllers/pick_email.js
index b11e116dcc8b22bbba20bfc37e3eb3d3ffaa8b1c..749047ca42b1ceb76c71422acc2d38d58f529235 100644
--- a/resources/static/test/cases/controllers/pick_email.js
+++ b/resources/static/test/cases/controllers/pick_email.js
@@ -155,5 +155,17 @@
     controller.addEmail();
   });
 
+  test("click on an email label - select corresponding radio button", function() {
+    storage.addEmail("testuser@testuser.com", {});
+    storage.addEmail("testuser2@testuser.com", {});
+
+    createController(false);
+
+    equal($("#testuser_testuser_com").is(":checked"), false, "radio button is not selected before click.");
+    $("label[for=testuser_testuser_com]").trigger("click");
+
+    equal($("#testuser_testuser_com").is(":checked"), true, "radio button is correctly selected");
+  });
+
 }());