diff --git a/src/sbbs3/js_user.c b/src/sbbs3/js_user.c
index ac4a155e59565520ae3c341f542e54eea09643c6..656c5c8c1984290e870b9b549b8ae176bbb8dfd1 100644
--- a/src/sbbs3/js_user.c
+++ b/src/sbbs3/js_user.c
@@ -336,9 +336,12 @@ static JSBool js_user_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
 		if((js_str=JS_NewStringCopyZ(cx, s))==NULL)
 			return(JS_FALSE);
 		*vp = STRING_TO_JSVAL(js_str);
-	} else
-		*vp = INT_TO_JSVAL(val);
-
+	} else {
+		if(INT_FITS_IN_JSVAL(val) && !(val&0x80000000))
+			*vp = INT_TO_JSVAL(val);
+		else
+            JS_NewDoubleValue(cx, val, vp);
+	}
 	return(JS_TRUE);
 }