diff --git a/src/sbbs3/js_internal.c b/src/sbbs3/js_internal.c
index 605477d5d57cfe82a6e69bb87a130c00c001757c..5fe1f7ce804a896e119c5155ac4fe5fb28a35b61 100644
--- a/src/sbbs3/js_internal.c
+++ b/src/sbbs3/js_internal.c
@@ -217,6 +217,7 @@ js_eval(JSContext *parent_cx, JSObject *parent_obj, uintN argc, jsval *argv, jsv
 	JSObject*		obj;
 	js_branch_t*	branch;
 	JSErrorReporter	reporter;
+	JSBranchCallback callback;
 
 	*rval=JSVAL_VOID;
 
@@ -233,15 +234,12 @@ js_eval(JSContext *parent_cx, JSObject *parent_obj, uintN argc, jsval *argv, jsv
 		return(JS_FALSE);
 
 	/* Use the error reporter from the parent context */
-#ifdef jscntxt_h___
-	reporter=parent_cx->errorReporter;
-#else
 	JS_SetErrorReporter(parent_cx,(reporter=JS_SetErrorReporter(parent_cx,NULL)));
-#endif
 	JS_SetErrorReporter(cx,reporter);
 
-#ifdef jscntxt_h___
-	JS_SetBranchCallback(cx, parent_cx->branchCallback);
+#if 1
+	JS_SetContextPrivate(cx, JS_GetContextPrivate(parent_cx));
+	JS_SetBranchCallback(cx, (callback=JS_SetBranchCallback(parent_cx,NULL)));
 #else
 	JS_SetContextPrivate(cx,branch);
 	JS_SetBranchCallback(cx, js_BranchCallback);