diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c
index a4110893ff73e7f1916e2e7dc46fc0f623978418..4bc361b20438594464b41dc1c471907aa832af38 100644
--- a/src/sbbs3/jsexec.c
+++ b/src/sbbs3/jsexec.c
@@ -51,6 +51,7 @@ ulong		js_context_stack=JAVASCRIPT_CONTEXT_STACK;
 FILE*		confp;
 FILE*		errfp;
 FILE*		nulfp;
+FILE*		statfp;
 char		revision[16];
 BOOL		pause_on_exit=FALSE;
 
@@ -77,8 +78,9 @@ void usage(FILE* fp)
 		"\t-y <freq>       set yield frequency (default=%u, 0=never)\n"
 		"\t-g <freq>       set garbage collection frequency (default=%u, 0=never)\n"
 		"\t-t <filename>   send console output to stdout and filename\n"
-		"\t-q              send console output to %s (quiet mode)\n"
 		"\t-e              send error messages to console instead of stderr\n"
+		"\t-n              send status messages to %s instead of stdout\n"
+		"\t-q              send console messages to %s instead of stderr\n"
 		"\t-p              wait for keypress (pause) on exit\n"
 		,JAVASCRIPT_MAX_BYTES
 		,JAVASCRIPT_CONTEXT_STACK
@@ -86,13 +88,14 @@ void usage(FILE* fp)
 		,JAVASCRIPT_YIELD_FREQUENCY
 		,JAVASCRIPT_GC_FREQUENCY
 		,_PATH_DEVNULL
+		,_PATH_DEVNULL
 		);
 }
 
 void bail(int code)
 {
 	if(pause_on_exit) {
-		fprintf(errfp,"\nHit enter to continue...");
+		fprintf(statfp,"\nHit enter to continue...");
 		getchar();
 	}
 	exit(code);
@@ -338,13 +341,13 @@ static BOOL js_CreateEnvObject(JSContext* cx, JSObject* glob, char** env)
 
 static BOOL js_init(char** environ)
 {
-	fprintf(errfp,"JavaScript: Creating runtime: %lu bytes\n"
+	fprintf(statfp,"JavaScript: Creating runtime: %lu bytes\n"
 		,js_max_bytes);
 
 	if((js_runtime = JS_NewRuntime(js_max_bytes))==NULL)
 		return(FALSE);
 
-	fprintf(errfp,"JavaScript: Initializing context (stack: %lu bytes)\n"
+	fprintf(statfp,"JavaScript: Initializing context (stack: %lu bytes)\n"
 		,js_context_stack);
 
     if((js_cx = JS_NewContext(js_runtime, js_context_stack))==NULL)
@@ -504,6 +507,9 @@ int main(int argc, char **argv, char** environ)
 				case 'q':
 					confp=nulfp;
 					break;
+				case 'n':
+					statfp=nulfp;
+					break;
 				case 'p':
 					pause_on_exit=TRUE;
 					break;
@@ -512,6 +518,8 @@ int main(int argc, char **argv, char** environ)
 					break;
 				default:
 					fprintf(errfp,"\n!Unsupported option: %s\n",argv[argn]);
+				case '?':
+				case 'h':
 					usage(errfp);
 					bail(1);
 			}
@@ -536,7 +544,7 @@ int main(int argc, char **argv, char** environ)
 		bail(1); 
 	}
 
-	banner(errfp);
+	banner(statfp);
 
 	if(chdir(scfg.ctrl_dir)!=0)
 		fprintf(errfp,"!ERROR changing directory to: %s", scfg.ctrl_dir);