diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index cb1f1cebc69922278e29f7bdceeca030a2055ed4..62a9df37b4bd75e7b2cd4fc9a4b8f2b382bd7f2d 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -555,8 +555,7 @@ int sbbs_t::js_execfile(const char *cmd, const char* startup_dir, JSObject* scop
 		js_glob = this->js_glob;
 
 	if(js_cx==NULL) {
-		errormsg(WHERE,ERR_CHK,"JavaScript support",0);
-		errormsg(WHERE,ERR_EXEC,cmd,0);
+		errormsg(WHERE,ERR_EXEC,cmd,0, "JavaScript context==NULL");
 		return -1;
 	}
 
@@ -719,15 +718,18 @@ int sbbs_t::js_execfile(const char *cmd, const char* startup_dir, JSObject* scop
 // Execute a JS Module in its own temporary JS runtime and context
 int sbbs_t::js_execxtrn(const char *cmd, const char* startup_dir)
 {
+	int result = -1;
 	JSRuntime* js_runtime;
 	JSObject* js_glob;
 	JSContext* js_cx = js_init(&js_runtime, &js_glob, "XtrnModule");
-	js_create_user_objects(js_cx, js_glob);
-	int result = js_execfile(cmd, startup_dir, js_glob, js_cx, js_glob);
-	JS_BEGINREQUEST(js_cx);
-	JS_RemoveObjectRoot(js_cx, &js_glob);
-	JS_ENDREQUEST(js_cx);
-	JS_DestroyContext(js_cx);
+	if(js_cx != NULL) {
+		js_create_user_objects(js_cx, js_glob);
+		result = js_execfile(cmd, startup_dir, js_glob, js_cx, js_glob);
+		JS_BEGINREQUEST(js_cx);
+		JS_RemoveObjectRoot(js_cx, &js_glob);
+		JS_ENDREQUEST(js_cx);
+		JS_DestroyContext(js_cx);
+	}
 	jsrt_Release(js_runtime);
 	return result;
 }