diff --git a/resources/static/dialog/js/modules/dialog.js b/resources/static/dialog/js/modules/dialog.js
index e9e3555ae3f08c37fba8806e24cbce2ecf43c3a4..6566944dd2739f4fe43e9d56ad1aa8765189e436 100644
--- a/resources/static/dialog/js/modules/dialog.js
+++ b/resources/static/dialog/js/modules/dialog.js
@@ -174,9 +174,12 @@ BrowserID.Modules.Dialog = (function() {
           helpers.log("requiredEmail has been deprecated");
         }
 
-        // support old parameter names...
-        if (paramsFromRP.tosURL) paramsFromRP.termsOfService = paramsFromRP.tosURL;
-        if (paramsFromRP.privacyURL) paramsFromRP.privacyPolicy = paramsFromRP.privacyURL;
+        // support old parameter names if new parameter names not defined.
+        if (paramsFromRP.tosURL && !paramsFromRP.termsOfService)
+          paramsFromRP.termsOfService = paramsFromRP.tosURL;
+
+        if (paramsFromRP.privacyURL && !paramsFromRP.privacyPolicy)
+          paramsFromRP.privacyPolicy = paramsFromRP.privacyURL;
 
         if (paramsFromRP.termsOfService && paramsFromRP.privacyPolicy) {
           params.termsOfService = fixupURL(origin_url, paramsFromRP.termsOfService);
diff --git a/resources/static/include_js/include.js b/resources/static/include_js/include.js
index 93b9ed2ff06ad1ec2b8bd3ff5c684c1e4a8c15de..1df41c082075bbd6abed52e08d55423fbed8718b 100644
--- a/resources/static/include_js/include.js
+++ b/resources/static/include_js/include.js
@@ -1080,20 +1080,7 @@
       _open_hidden_iframe();
 
       // back compat support for loggedInEmail
-      if (typeof options.loggedInEmail !== 'undefined' &&
-          typeof options.loggedInUser !== 'undefined') {
-        throw "you cannot supply *both* loggedInEmail and loggedInUser";
-      }
-      else if(typeof options.loggedInEmail !== 'undefined') {
-        try {
-          console.log("loggedInEmail has been deprecated");
-        } catch(e) {
-          /* ignore error */
-        }
-
-        options.loggedInUser = options.loggedInEmail;
-        delete options.loggedInEmail;
-      }
+      checkRenamed(options, "loggedInEmail", "loggedInUser");
 
       // check that the commChan was properly initialized before interacting with it.
       // on unsupported browsers commChan might still be undefined, in which case
@@ -1107,9 +1094,9 @@
     }
 
     function internalRequest(options) {
-      if (options.requiredEmail) {
-        warn("requiredEmail has been deprecated");
-      }
+      checkDeprecated(options, "requiredEmail");
+      checkRenamed(options, "tosURL", "termsOfService");
+      checkRenamed(options, "privacyURL", "privacyPolicy");
 
       if (options.termsOfService && !options.privacyPolicy) {
         warn("termsOfService ignored unless privacyPolicy also defined");
diff --git a/resources/static/test/cases/dialog/js/modules/dialog.js b/resources/static/test/cases/dialog/js/modules/dialog.js
index 153eda71708d624b7fef2a3a3f2fbd12760bb649..5bb1d19f4636ed9c45f2213713bed1b97efd0a3b 100644
--- a/resources/static/test/cases/dialog/js/modules/dialog.js
+++ b/resources/static/test/cases/dialog/js/modules/dialog.js
@@ -347,7 +347,7 @@
   });
 
 
-  asyncTest("get with valid absolute termsOfService & privacyPolicy - go to start", function() {
+  function testValidTermsOfServicePrivacyPolicy(options, expected) {
     createController({
       ready: function() {
         var startInfo;
@@ -355,70 +355,60 @@
           startInfo = info;
         });
 
-        var retval = controller.get(HTTP_TEST_DOMAIN, {
-          termsOfService: "/tos.html",
-          privacyPolicy: "/privacy.html"
-        });
-
-        testHelpers.testObjectValuesEqual(startInfo, {
-          termsOfService: HTTP_TEST_DOMAIN + "/tos.html",
-          privacyPolicy: HTTP_TEST_DOMAIN + "/privacy.html"
-        });
+        var retval = controller.get(HTTP_TEST_DOMAIN, options);
+        testHelpers.testObjectValuesEqual(startInfo, expected);
 
         equal(typeof retval, "undefined", "no error expected");
         testErrorNotVisible();
         start();
       }
     });
+  }
+
+  asyncTest("get with valid absolute termsOfService & privacyPolicy - go to start", function() {
+    testValidTermsOfServicePrivacyPolicy({
+      termsOfService: "/tos.html",
+      privacyPolicy: "/privacy.html"
+    },
+    {
+      termsOfService: HTTP_TEST_DOMAIN + "/tos.html",
+      privacyPolicy: HTTP_TEST_DOMAIN + "/privacy.html"
+    });
   });
 
   asyncTest("get with valid fully qualified http termsOfService & privacyPolicy - go to start", function() {
-    createController({
-      ready: function() {
-        var startInfo;
-        mediator.subscribe("start", function(msg, info) {
-          startInfo = info;
-        });
-
-        var retval = controller.get(HTTP_TEST_DOMAIN, {
-          termsOfService: HTTP_TEST_DOMAIN + "/tos.html",
-          privacyPolicy: HTTP_TEST_DOMAIN + "/privacy.html"
-        });
-
-        testHelpers.testObjectValuesEqual(startInfo, {
-          termsOfService: HTTP_TEST_DOMAIN + "/tos.html",
-          privacyPolicy: HTTP_TEST_DOMAIN + "/privacy.html"
-        });
-
-        equal(typeof retval, "undefined", "no error expected");
-        testErrorNotVisible();
-        start();
-      }
+    testValidTermsOfServicePrivacyPolicy({
+      termsOfService: HTTP_TEST_DOMAIN + "/tos.html",
+      privacyPolicy: HTTP_TEST_DOMAIN + "/privacy.html"
+    },
+    {
+      termsOfService: HTTP_TEST_DOMAIN + "/tos.html",
+      privacyPolicy: HTTP_TEST_DOMAIN + "/privacy.html"
     });
   });
 
 
   asyncTest("get with valid fully qualified https termsOfService & privacyPolicy - go to start", function() {
-    createController({
-      ready: function() {
-        var startInfo;
-        mediator.subscribe("start", function(msg, info) {
-          startInfo = info;
-        });
-
-        var retval = controller.get(HTTP_TEST_DOMAIN, {
-          termsOfService: HTTPS_TEST_DOMAIN + "/tos.html",
-          privacyPolicy: HTTPS_TEST_DOMAIN + "/privacy.html"
-        });
+    testValidTermsOfServicePrivacyPolicy({
+      termsOfService: HTTPS_TEST_DOMAIN + "/tos.html",
+      privacyPolicy: HTTPS_TEST_DOMAIN + "/privacy.html"
+    },
+    {
+      termsOfService: HTTPS_TEST_DOMAIN + "/tos.html",
+      privacyPolicy: HTTPS_TEST_DOMAIN + "/privacy.html"
+    });
+  });
 
-        testHelpers.testObjectValuesEqual(startInfo, {
-          termsOfService: HTTPS_TEST_DOMAIN + "/tos.html",
-          privacyPolicy: HTTPS_TEST_DOMAIN + "/privacy.html"
-        });
-        equal(typeof retval, "undefined", "no error expected");
-        testErrorNotVisible();
-        start();
-      }
+  asyncTest("get with valid termsOfService, tosURL & privacyPolicy, privacyURL - use termsOfService and privacyPolicy", function() {
+    testValidTermsOfServicePrivacyPolicy({
+      termsOfService: "/tos.html",
+      tosURL: "/tos_deprecated.html",
+      privacyPolicy: "/privacy.html",
+      privacyURL: "/privacy_deprecated.html"
+    },
+    {
+      termsOfService: HTTP_TEST_DOMAIN + "/tos.html",
+      privacyPolicy: HTTP_TEST_DOMAIN + "/privacy.html"
     });
   });