diff --git a/bin/load_gen b/bin/load_gen
index 5133533408df5bfdbbfa245cd47de825d526cf9b..5eb1ea00b2d4b9b70a8c4c4e30fc0ad9bd74ba62 100755
--- a/bin/load_gen
+++ b/bin/load_gen
@@ -58,8 +58,11 @@ var argv = require('optimist')
 .describe('o', 'when enabled, only dynamic WSAPI calls will be simulated, not static resource requests')
 .default('o', false)
 .alias('s', 'server')
+.string('s')
 .describe('s', 'base URL to browserid server')
-.demand('s')
+.check(function(argv) {
+  return (typeof argv.s === 'string' || argv.l) != undefined;
+})
 .alias('v', 'verifier')
 .describe('v', 'base URL to verifier service (default is browserid server + \'/verify\')')
 .alias('u', 'user-range')
@@ -67,11 +70,6 @@ var argv = require('optimist')
 
 var args = argv.argv;
 
-if (args.h) {
-  argv.showHelp();
-  process.exit(1);
-}
-
 // global configuration
 const configuration = {
   verifier: args.v ? args.v : args.s + "/verify",
@@ -139,6 +137,11 @@ if (args.l) {
   process.exit(0);
 }
 
+if (args.h) {
+  argv.showHelp();
+  process.exit(1);
+}
+
 var activitiesToRun = Object.keys(activity);
 
 // handle modification of activities to run (-o or -a)