diff --git a/src/sbbs3/js_console.cpp b/src/sbbs3/js_console.cpp
index 3570cbb9c62f4822b5c92d0fbb94880bae5e2fac..fda1a3330d189acb45a716e3f21924d7bf02e7d6 100644
--- a/src/sbbs3/js_console.cpp
+++ b/src/sbbs3/js_console.cpp
@@ -700,7 +700,8 @@ js_getkeys(JSContext *cx, uintN argc, jsval *arglist)
 	char		key[2];
 	uintN		i;
 	int32		val;
-	uint32		maxnum = 0;
+	uint32		maxnum = ~0;
+	bool		maxnum_specified = false;
 	long		mode = K_UPPER;
 	sbbs_t*		sbbs;
     JSString*	js_str=NULL;
@@ -716,9 +717,10 @@ js_getkeys(JSContext *cx, uintN argc, jsval *arglist)
 		if(JSVAL_IS_NUMBER(argv[i])) {
 			if(!JS_ValueToInt32(cx, argv[i], &val))
 				return JS_FALSE;
-			if(maxnum == 0)
+			if(!maxnum_specified) {
+				maxnum_specified = true;
 				maxnum = val;
-			else
+			} else
 				mode = val;
 			continue;
 		}
@@ -730,9 +732,6 @@ js_getkeys(JSContext *cx, uintN argc, jsval *arglist)
 		}
 	}
 
-	if(maxnum == 0)
-		maxnum = ~0;
-
 	rc=JS_SUSPENDREQUEST(cx);
 	val=sbbs->getkeys(cstr, maxnum, mode);
 	FREE_AND_NULL(cstr);