diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index c94c0174a10b0c234f5ba7d8a9883316f312ec63..c50f241ce0d69d90fca648b22c04db3236fe1418 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -692,7 +692,8 @@ int sbbs_t::js_execfile(const char *cmd, const char* startup_dir, JSObject* scop
 	js_callback.rq_tail = NULL;
 	listeners = js_callback.listeners;
 	js_callback.listeners = NULL;
-	JS_ExecuteScript(js_cx, js_scope, js_script, &rval);
+	if(!JS_ExecuteScript(js_cx, js_scope, js_script, &rval))
+		result = -1;
 	js_handle_events(js_cx, &js_callback, &terminated);
 //	sys_status &=~ SS_ABORT;
 
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index dd124e655ea4d1baac7fdc93bd8b93d309a85e78..e8c5f2fda18c595c3a48f1a462eb6cfe7765356e 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -4458,14 +4458,16 @@ void node_thread(void* arg)
 					SAFEPRINTF2(str,"%s%s.js",sbbs->cfg.mods_dir
 						,sbbs->cfg.shell[sbbs->useron.shell]->code);
 					if(fexistcase(str)) {
-						sbbs->js_execfile(str);
+						if(sbbs->js_execfile(str) != 0)
+							break;
 						continue;
 					}
 				}
 				SAFEPRINTF2(str, "%s%s.js", sbbs->cfg.exec_dir
 					,sbbs->cfg.shell[sbbs->useron.shell]->code);
 				if(fexistcase(str)) {
-					sbbs->js_execfile(str);
+					if(sbbs->js_execfile(str) != 0)
+						break;
 					continue;
 				}
 				SAFEPRINTF2(str,"%s%s.bin",sbbs->cfg.mods_dir