diff --git a/exec/binkit.js b/exec/binkit.js
index cc45a027327e99a2bcea83e0eb9470cb982debe4..e12c365985b9737752b9ffdabcd1168a587dc394 100644
--- a/exec/binkit.js
+++ b/exec/binkit.js
@@ -26,6 +26,7 @@ var version_notice = "BinkIT/" + REVISION;
 var semaphores = [];
 // data/binkstats.ini
 var stats = { inbound: { true: {}, false: {} }, callout: { true: {}, false: {} }, totals: {} };
+var cfgfname;
 
 function update_stats(stats, addr, bp, host)
 {
@@ -609,7 +610,7 @@ function callout(addr, scfg, locks, bicfg)
 
 	log(LOG_INFO, format("%s callout to %s started", bp.revision, addr));
 	if (bicfg === undefined)
-		bicfg = new BinkITCfg();
+		bicfg = new BinkITCfg(cfgfname);
 	bp.system_operator = bicfg.sysop;
 	bp.plain_auth_only = bicfg.plain_auth_only;
 	bp.crypt_support = bicfg.crypt_support;
@@ -845,8 +846,8 @@ function run_outbound(ran)
 	var scfg_ob;
 
 	log(LOG_DEBUG, "Running outbound");
-	scfg = new SBBSEchoCfg();
-	bicfg = new BinkITCfg();
+	scfg = new SBBSEchoCfg(cfgfname);
+	bicfg = new BinkITCfg(cfgfname);
 
 	if (!scfg.is_flo) {
 		log(LOG_ERROR, "sbbsecho not configured for FLO-style mailers.");
@@ -1011,8 +1012,8 @@ function run_inbound(sock)
 
 	log(LOG_INFO, bp.revision + " inbound connection from " +sock.remote_ip_address+":"+sock.remote_port);
 	bp.cb_data = {
-		binkitcfg:new BinkITCfg(),
-		binkit_scfg:new SBBSEchoCfg(),
+		binkitcfg:new BinkITCfg(cfgfname),
+		binkit_scfg:new SBBSEchoCfg(cfgfname),
 		binkit_file_actions:{},
 		binkit_flow_contents:{},
 		binkit_locks:locks
@@ -1057,7 +1058,7 @@ function poll_node(addr_str, scfg, bicfg, myaddr)
 	var locks = [];
 
 	if (scfg === undefined)
-		scfg = new SBBSEchoCfg();
+		scfg = new SBBSEchoCfg(cfgfname);
 
 	if (myaddr === undefined)
 		myaddr = FIDO.parse_addr(system.fido_addr_list[0], 1, 'fidonet');
@@ -1092,8 +1093,8 @@ function run_polls(ran)
 	var locks = [];
 
 	log(LOG_DEBUG, "Running polls");
-	scfg = new SBBSEchoCfg();
-	bicfg = new BinkITCfg();
+	scfg = new SBBSEchoCfg(cfgfname);
+	bicfg = new BinkITCfg(cfgfname);
 	myaddr = FIDO.parse_addr(system.fido_addr_list[0], 1, 'fidonet');
 
 	Object.keys(bicfg.node).forEach(function(addr_str) {
@@ -1194,6 +1195,11 @@ if (system.fido_addr_list.length < 1) {
 	exit(1);
 }
 
+for (i = 0; i < argv.length; i++) {
+	if(file_getext(argv[i]) == ".ini")
+		cfgfname = argv[i];
+}
+
 // If we're running as a service, call run_inbound().
 if (sock !== undefined && sock.descriptor !== -1)
 	run_inbound(sock);