diff --git a/exec/ircd.js b/exec/ircd.js
index 28c78d2b197c832031aec343bde71bfe3459fa91..3f96884b941fbd6a3a086a37b6a8c18cbf4f648c 100644
--- a/exec/ircd.js
+++ b/exec/ircd.js
@@ -149,6 +149,7 @@ var new_socket_send;
 // Parse command-line arguments.
 config_filename="";
 var cmdline_port;
+var cmdline_addr;
 for (cmdarg=0;cmdarg<argc;cmdarg++) {
 	switch(argv[cmdarg].toLowerCase()) {
 		case "-f":
@@ -160,6 +161,9 @@ for (cmdarg=0;cmdarg<argc;cmdarg++) {
 		case "-d":
 			debug=true;
 			break;
+		case "-a":
+			cmdline_addr = argv[++cmdarg].split(',');
+			break;
 	}
 }
 
@@ -174,7 +178,7 @@ if(this.server==undefined) {		// Running from JSexec?
 		default_port = mline_port;
 
 	server = { socket: false, terminated: false,
-		version_detail: jsexec_revision_detail, interface_ip_addr_list: ["0.0.0.0","::"] };
+		version_detail: jsexec_revision_detail, interface_ip_addr_list: (cmdline_addr || ["0.0.0.0","::"]) };
 	server.socket = create_new_socket(default_port)
 	if (!server.socket)
 		exit();