diff --git a/src/sbbs3/js_internal.c b/src/sbbs3/js_internal.c
index cd0981c68c89e970e3088cc1cf5dd0f547844fbf..b62aba391db1d0272d0c60b41846dca2e37d745b 100644
--- a/src/sbbs3/js_internal.c
+++ b/src/sbbs3/js_internal.c
@@ -38,10 +38,6 @@
 #include "sbbs.h"
 #include "js_request.h"
 
-#ifdef _DEBUG
-	#include <jscntxt.h>	/* Needed for Context-private data structure */
-#endif
-
 enum {
 	 PROP_VERSION
 	,PROP_TERMINATED
@@ -89,7 +85,7 @@ static JSBool js_get(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
 			*vp=DOUBLE_TO_JSVAL((double)branch->counter);
 			break;
 		case PROP_BRANCH_LIMIT:
-			*cp=DOUBLE_TO_JSVAL(branch->limit);
+			*vp=DOUBLE_TO_JSVAL(branch->limit);
 			break;
 		case PROP_YIELD_INTERVAL:
 			*vp=DOUBLE_TO_JSVAL((double)branch->yield_interval);
@@ -259,11 +255,6 @@ js_eval(JSContext *parent_cx, uintN argc, jsval *arglist)
 	JSContext*		cx;
 	JSObject*		obj;
 	JSErrorReporter	reporter;
-#ifndef EVAL_BRANCH_CALLBACK
-#ifndef USE_JS_OPERATION_CALLBACK
-	JSBranchCallback callback;
-#endif
-#endif
 
 	if(argc<1)
 		return(JS_TRUE);
@@ -307,8 +298,11 @@ js_eval(JSContext *parent_cx, uintN argc, jsval *arglist)
 	}
 
 	if((script=JS_CompileScript(cx, obj, buf, buflen, NULL, 0))!=NULL) {
-		JS_ExecuteScript(cx, obj, script, rval);
+		jsval	rval;
+
+		JS_ExecuteScript(cx, obj, script, &rval);
 		JS_DestroyScript(cx, script);
+		JS_SET_RVAL(cx, arglist, rval);
 	}
 
 	JS_DestroyContext(cx);
diff --git a/src/sbbs3/js_msgbase.c b/src/sbbs3/js_msgbase.c
index 434efd02e1b2a27cc2f1118b683e505d6d48f704..7700e037fcd133fe2b15440a565b2e2d2299a02e 100644
--- a/src/sbbs3/js_msgbase.c
+++ b/src/sbbs3/js_msgbase.c
@@ -1488,9 +1488,9 @@ js_save_msg(JSContext *cx, uintN argc, jsval *arglist)
 	}
 
 	if(!SMB_IS_OPEN(&(p->smb))) {
-		if(!js_open(cx, obj, 0, NULL, &open_rval))
+		if(!js_open(cx, arglist, &open_rval))
 			return(JS_FALSE);
-		if(open_rval == JSVAL_FALSE)
+		if(JS_RVAL(cx, arglist) == JSVAL_FALSE)
 			return(JS_TRUE);
 	}
 
diff --git a/src/sbbs3/js_queue.c b/src/sbbs3/js_queue.c
index 7e9ad5fa4522cc51cdf1901c8318b66861a6dac6..726ab484a7b5a3be06f77593493dd011e4c40fe9 100644
--- a/src/sbbs3/js_queue.c
+++ b/src/sbbs3/js_queue.c
@@ -249,11 +249,11 @@ static queued_value_t* js_encode_value(JSContext *cx, jsval val, char* name
 		SAFECOPY(nv->name,name);
 
 	switch(JSVAL_TAG(val)) {
-		case JSVAL_BOOLEAN:
+		case JSVAL_TAG_BOOLEAN:
 			nv->type=JSTYPE_BOOLEAN;
 			nv->value.b=JSVAL_TO_BOOLEAN(val);
 			break;
-		case JSVAL_OBJECT:
+		case JSVAL_TAG_OBJECT:
 			if(JSVAL_IS_NULL(val)) {
 				nv->type=JSTYPE_NULL;
 				break;