diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index ad4ba4ea23061424263a8f8930ac886260a43fc9..f0b14c87623fa2cd49f7686b28aafafb8f215d4f 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -481,9 +481,9 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, JSObject** ftp)
 	BOOL		success=FALSE;
 
 	lprintf("%04d JavaScript: Initializing context (stack: %lu bytes)"
-		,sock,JAVASCRIPT_CONTEXT_STACK);
+		,sock,startup->js_cx_stack);
 
-    if((js_cx = JS_NewContext(runtime, JAVASCRIPT_CONTEXT_STACK))==NULL)
+    if((js_cx = JS_NewContext(runtime, startup->js_cx_stack))==NULL)
 		return(NULL);
 
 	lprintf("%04d JavaScript: Context created",sock);
@@ -4529,6 +4529,7 @@ void DLLCALL ftp_server(void* arg)
 		startup->options|=FTP_OPT_NO_JAVASCRIPT;
 #ifdef JAVASCRIPT
 	if(startup->js_max_bytes==0)			startup->js_max_bytes=JAVASCRIPT_MAX_BYTES;
+	if(startup->js_cx_stack==0)				startup->js_cx_stack=JAVASCRIPT_CONTEXT_STACK;
 #endif
 
 	uptime=0;
diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h
index 03f874b55e6c96ea9c3af711d17dc363737d0432..8545bdb350ade896f2be1e5eac1bad5022322754 100644
--- a/src/sbbs3/ftpsrvr.h
+++ b/src/sbbs3/ftpsrvr.h
@@ -51,6 +51,7 @@ typedef struct {
     DWORD   interface_addr;
     DWORD	options;			/* See FTP_OPT definitions */
     DWORD	js_max_bytes;
+	DWORD	js_cx_stack;
 	int 	(*lputs)(char*);
 	void	(*status)(char*);
     void	(*started)(void);
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 29486406db0911c80bc219f70a2f62982f0567da..b40304ded12d7787f5966cf1705f1395a5f1a1d7 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -2005,9 +2005,9 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, http_session_t *sess
 	BOOL		success=FALSE;
 
 	lprintf("%04d JavaScript: Initializing context (stack: %lu bytes)"
-		,sock,JAVASCRIPT_CONTEXT_STACK);
+		,sock,startup->js_cx_stack);
 
-    if((js_cx = JS_NewContext(runtime, JAVASCRIPT_CONTEXT_STACK))==NULL)
+    if((js_cx = JS_NewContext(runtime, startup->js_cx_stack))==NULL)
 		return(NULL);
 
 	lprintf("%04d JavaScript: Context created",sock);
@@ -2446,6 +2446,7 @@ void DLLCALL web_server(void* arg)
 	if(startup->max_inactivity==0) 			startup->max_inactivity=120; /* seconds */
 	if(startup->sem_chk_freq==0)			startup->sem_chk_freq=5; /* seconds */
 	if(startup->js_max_bytes==0)			startup->js_max_bytes=JAVASCRIPT_MAX_BYTES;
+	if(startup->js_cx_stack==0)				startup->js_cx_stack=JAVASCRIPT_CONTEXT_STACK;
 	if(startup->ssjs_ext[0]==0)				SAFECOPY(startup->ssjs_ext,"ssjs");
 
 	/* Copy html directories */
diff --git a/src/sbbs3/websrvr.h b/src/sbbs3/websrvr.h
index f494412d21c986634f7cd9fa0945a08497fd9fd5..a3c7e48b39e697a4152f6fe223725fdfb4ec6d73 100644
--- a/src/sbbs3/websrvr.h
+++ b/src/sbbs3/websrvr.h
@@ -50,6 +50,7 @@ typedef struct {
     DWORD   interface_addr;
     DWORD	options;
     DWORD	js_max_bytes;
+	DWORD	js_cx_stack;
 	int 	(*lputs)(char*);
 	void	(*status)(char*);
     void	(*started)(void);