diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c
index 2ff09eb86a1f63f7da07fa8e703a1ee1803b8305..51fb1c11e6a5b6e6e51b5c6f4738f4d361c9f9b3 100644
--- a/src/sbbs3/jsexec.c
+++ b/src/sbbs3/jsexec.c
@@ -57,6 +57,8 @@ FILE*		errfp;
 FILE*		nulfp;
 FILE*		statfp;
 char		revision[16];
+char*		host_name=NULL;
+char		host_name_buf[128];
 BOOL		pause_on_exit=FALSE;
 BOOL		pause_on_error=FALSE;
 BOOL		terminated=FALSE;
@@ -84,6 +86,8 @@ void usage(FILE* fp)
 		"\t-b <limit>      set branch limit (default=%u, 0=unlimited)\n"
 		"\t-y <freq>       set yield interval (default=%u, 0=never)\n"
 		"\t-g <freq>       set garbage collection interval (default=%u, 0=never)\n"
+		"\t-H              use local host name (instead of SCFG value)\n"
+		"\t-h <hostname>   use specified host name (instead of SCFG value)\n"
 		"\t-t <filename>   send console output to stdout and filename\n"
 		"\t-e              send error messages to console instead of stderr\n"
 		"\t-n              send status messages to %s instead of stdout\n"
@@ -462,7 +466,7 @@ static BOOL js_init(char** environ)
 		return(FALSE);
 
 	/* System Object */
-	if(js_CreateSystemObject(js_cx, js_glob, &scfg, time(NULL), scfg.sys_inetaddr)==NULL)
+	if(js_CreateSystemObject(js_cx, js_glob, &scfg, time(NULL), host_name)==NULL)
 		return(FALSE);
 
 	/* Socket Class */
@@ -674,6 +678,12 @@ int main(int argc, char **argv, char** environ)
 				case 'g':
 					branch.gc_interval=strtoul(argv[++argn],NULL,0);
 					break;
+				case 'h':
+					host_name=argv[++argn];
+					break;
+				case 'H':
+					gethostname(host_name=host_name_buf,sizeof(host_name_buf));
+					break;
 				case 'e':
 					errfp=confp;
 					break;
@@ -701,7 +711,6 @@ int main(int argc, char **argv, char** environ)
 				default:
 					fprintf(errfp,"\n!Unsupported option: %s\n",argv[argn]);
 				case '?':
-				case 'h':
 					usage(errfp);
 					bail(1);
 			}
@@ -738,6 +747,9 @@ int main(int argc, char **argv, char** environ)
 	}
 	prep_dir(scfg.data_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
 
+	if(host_name==NULL)
+		host_name=scfg.sys_inetaddr;
+
 	if(!(scfg.sys_misc&SM_LOCAL_TZ))
 		putenv("TZ=UTC0");