diff --git a/browserid/static/dialog/resources/network.js b/browserid/static/dialog/resources/network.js
index daf5edb840f8499da6483b6fc1d811aef77f6000..fa4d0eeae38cba1286bf630c4356f5189cba92c1 100644
--- a/browserid/static/dialog/resources/network.js
+++ b/browserid/static/dialog/resources/network.js
@@ -37,7 +37,8 @@
 BrowserID.Network = (function() {
   "use strict";
 
-  var csrf_token,
+  var XHR_TIMEOUT = 10000,
+      csrf_token,
       xhr = $,
       server_time,
       auth_status,
@@ -70,7 +71,8 @@ BrowserID.Network = (function() {
       // to debug.
       success: deferResponse(options.success),
       error: deferResponse(xhrError(options.error, options.errorMessage)),
-      dataType: "json"
+      dataType: "json",
+      timeout: XHR_TIMEOUT
     });
   }
 
@@ -91,6 +93,7 @@ BrowserID.Network = (function() {
         // to debug.
         success: deferResponse(options.success),
         error: deferResponse(xhrError(options.error, options.errorMessage)),
+        timeout: XHR_TIMEOUT
       });
     }, options.error);
   }
@@ -109,7 +112,8 @@ BrowserID.Network = (function() {
           auth_status = result.authenticated;
           cb();
         },
-        error: deferResponse(xhrError(onFailure))
+        error: deferResponse(xhrError(onFailure)),
+        timeout: XHR_TIMEOUT
       });
     }
   }