diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index 1bf44214c230c096756cf11b2bb37443109ed068..0fdadc31eec24d091be1eb217a61db717f8bd772 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -73,7 +73,7 @@ static JSBool js_system_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
 	return(JS_TRUE);
 }
 
-#define GLOBOBJ_FLAGS JSPROP_ENUMERATE|JSPROP_READONLY
+#define GLOBOBJ_FLAGS JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_SHARED
 
 static struct JSPropertySpec js_global_properties[] = {
 /*		 name,		tinyid,				flags */
diff --git a/src/sbbs3/js_msg_area.c b/src/sbbs3/js_msg_area.c
index 75f6483c180da55bd1f7c317129e7e43f1acece6..1c21e1c78814a7dec71fd9309ec5a6ab5979e100 100644
--- a/src/sbbs3/js_msg_area.c
+++ b/src/sbbs3/js_msg_area.c
@@ -293,9 +293,9 @@ static JSBool js_sub_set(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
 static struct JSPropertySpec js_sub_properties[] = {
 /*		 name				,tinyid		,flags	*/
 
-	{	"scan_ptr"	,SUB_PROP_SCAN_PTR	,JSPROP_ENUMERATE },
-	{	"scan_cfg"	,SUB_PROP_SCAN_CFG	,JSPROP_ENUMERATE },
-	{	"lead_read"	,SUB_PROP_LAST_READ	,JSPROP_ENUMERATE },
+	{	"scan_ptr"	,SUB_PROP_SCAN_PTR	,JSPROP_ENUMERATE|JSPROP_SHARED },
+	{	"scan_cfg"	,SUB_PROP_SCAN_CFG	,JSPROP_ENUMERATE|JSPROP_SHARED },
+	{	"lead_read"	,SUB_PROP_LAST_READ	,JSPROP_ENUMERATE|JSPROP_SHARED },
 	{0}
 };
 
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index faef5ab006f62b1ce6fc4be3e6e1e9627580ab49..c70aab0eae299c635530e072b2b555c6231954be 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -374,8 +374,8 @@ DLLCALL js_DefineSyncProperties(JSContext *cx, JSObject *obj, jsSyncPropertySpec
 		return(JS_FALSE);
 
 	for(i=0;props[i].name;i++) {
-		if(!JS_DefinePropertyWithTinyId(cx, obj, 
-			props[i].name,props[i].tinyid, JSVAL_VOID, NULL, NULL, props[i].flags))
+		if(!JS_DefinePropertyWithTinyId(cx, obj, /* Never reserve any "slots" for properties */
+			props[i].name,props[i].tinyid, JSVAL_VOID, NULL, NULL, props[i].flags|JSPROP_SHARED))
 			return(JS_FALSE);
 		if(props[i].flags&JSPROP_ENUMERATE) {	/* No need to version invisible props */
 			val = INT_TO_JSVAL(props[i].ver);
@@ -477,7 +477,7 @@ DLLCALL js_DefineSyncProperties(JSContext *cx, JSObject *obj, jsSyncPropertySpec
 
 	for(i=0;props[i].name;i++) 
 		if(!JS_DefinePropertyWithTinyId(cx, obj, 
-			props[i].name,props[i].tinyid, JSVAL_VOID, NULL, NULL, props[i].flags))
+			props[i].name,props[i].tinyid, JSVAL_VOID, NULL, NULL, props[i].flags|JSPROP_SHARED))
 			return(JS_FALSE);
 
 	return(JS_TRUE);