diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index c252ca4073d8eb1685c733e9cc3cc67a4e3e1b7a..dea8b5c2de8e351aeecc120b3b0bea4d9b7c072b 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -120,8 +120,10 @@ js_printf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 			if (!str)
 			    return JS_FALSE;
 			arglist[i-1]=JS_GetStringBytes(str);
-		} else
+		} else if(JSVAL_IS_INT(argv[i]))
 			arglist[i-1]=(char *)JSVAL_TO_INT(argv[i]);
+		else
+			arglist[i-1]=NULL;
 	}
 	
 	vsprintf(tmp,JS_GetStringBytes(fmt),(char*)arglist);
@@ -149,8 +151,10 @@ js_format(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 			if (!str)
 			    return JS_FALSE;
 			arglist[i-1]=JS_GetStringBytes(str);
-		} else
+		} else if(JSVAL_IS_INT(argv[i]))
 			arglist[i-1]=(char *)JSVAL_TO_INT(argv[i]);
+		else
+			arglist[i-1]=NULL;
 	}
 	
 	vsprintf(tmp,JS_GetStringBytes(fmt),(char*)arglist);