diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c
index ef11ece9e3a539ebeb2dbab4b183b5badf837da9..2eb979675a0add140e4df02f28809a7329aa7d35 100644
--- a/src/sbbs3/js_file.c
+++ b/src/sbbs3/js_file.c
@@ -154,8 +154,10 @@ js_open(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 			mode=JS_GetStringBytes(str);
 		} else if(JSVAL_IS_BOOLEAN(argv[i]))	/* shareable */
 			shareable=JSVAL_TO_BOOLEAN(argv[i]);
-		else if(JSVAL_IS_NUMBER(argv[i]))	/* bufsize */
-			JS_ValueToInt32(cx,argv[i],&bufsize);
+		else if(JSVAL_IS_NUMBER(argv[i])) {	/* bufsize */
+			if(!JS_ValueToInt32(cx,argv[i],&bufsize))
+				return(JS_FALSE);
+		}
 	}
 	SAFECOPY(p->mode,mode);
 
@@ -224,9 +226,10 @@ js_read(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	if(p->fp==NULL)
 		return(JS_TRUE);
 
-	if(argc)
-		JS_ValueToInt32(cx,argv[0],&len);
-	else {
+	if(argc) {
+		if(!JS_ValueToInt32(cx,argv[0],&len))
+			return(JS_FALSE);
+	} else {
 		len=filelength(fileno(p->fp));
 		offset=ftell(p->fp);
 		if(offset>0)
@@ -303,8 +306,10 @@ js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	if(p->fp==NULL)
 		return(JS_TRUE);
 	
-	if(argc)
-		JS_ValueToInt32(cx,argv[0],&len);
+	if(argc) {
+		if(!JS_ValueToInt32(cx,argv[0],&len))
+			return(JS_FALSE);
+	}
 
 	if((buf=malloc(len))==NULL)
 		return(JS_TRUE);
@@ -348,8 +353,10 @@ js_readbin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	if(p->fp==NULL)
 		return(JS_TRUE);
 
-	if(argc) 
-		JS_ValueToInt32(cx,argv[0],(int32*)&size);
+	if(argc) {
+		if(!JS_ValueToInt32(cx,argv[0],(int32*)&size))
+			return(JS_FALSE);
+	}
 
 	switch(size) {
 		case sizeof(BYTE):
@@ -510,7 +517,8 @@ js_iniGetValue(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 			break;
 		default:
 			if(JSVAL_IS_NUMBER(dflt)) {
-				JS_ValueToInt32(cx,dflt,&i);
+				if(!JS_ValueToInt32(cx,dflt,&i))
+					return(JS_FALSE);
 				JS_NewNumberValue(cx,iniReadInteger(p->fp,section,key,i),rval);
 			} else
 				*rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx
@@ -563,7 +571,8 @@ js_iniSetValue(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 				break;
 			default:
 				if(JSVAL_IS_NUMBER(value)) {
-					JS_ValueToInt32(cx,value,&i);
+					if(!JS_ValueToInt32(cx,value,&i))
+						return(JS_FALSE);
 					result = iniSetInteger(&list,section,key,i,NULL);
 				} else {
 					if(JSVAL_IS_OBJECT(value) 
@@ -880,7 +889,8 @@ js_write(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 
 	tlen=len;
 	if(argc>1) {
-		JS_ValueToInt32(cx,argv[1],(int32*)&tlen);
+		if(!JS_ValueToInt32(cx,argv[1],(int32*)&tlen))
+			return(JS_FALSE);
 		if(len>tlen)
 			len=tlen;
 	}
@@ -962,9 +972,12 @@ js_writebin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	if(p->fp==NULL)
 		return(JS_TRUE);
 
-	JS_ValueToInt32(cx,argv[0],&val);
-	if(argc>1) 
-		JS_ValueToInt32(cx,argv[1],(int32*)&size);
+	if(!JS_ValueToInt32(cx,argv[0],&val))
+		return(JS_FALSE);
+	if(argc>1) {
+		if(!JS_ValueToInt32(cx,argv[1],(int32*)&size))
+			return(JS_FALSE);
+	}
 
 	switch(size) {
 		case sizeof(BYTE):
@@ -1055,12 +1068,16 @@ js_lock(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 		return(JS_TRUE);
 
 	/* offset */
-	if(argc)
-		JS_ValueToInt32(cx,argv[0],&offset);
+	if(argc) {
+		if(!JS_ValueToInt32(cx,argv[0],&offset))
+			return(JS_FALSE);
+	}
 
 	/* length */
-	if(argc>1)
-		JS_ValueToInt32(cx,argv[1],&len);
+	if(argc>1) {
+		if(!JS_ValueToInt32(cx,argv[1],&len))
+			return(JS_FALSE);
+	}
 
 	if(len==0)
 		len=filelength(fileno(p->fp))-offset;
@@ -1089,12 +1106,16 @@ js_unlock(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 		return(JS_TRUE);
 
 	/* offset */
-	if(argc)
-		JS_ValueToInt32(cx,argv[0],&offset);
+	if(argc) {
+		if(!JS_ValueToInt32(cx,argv[0],&offset))
+			return(JS_FALSE);
+	}
 
 	/* length */
-	if(argc>1)
-		JS_ValueToInt32(cx,argv[1],&len);
+	if(argc>1) {
+		if(!JS_ValueToInt32(cx,argv[1],&len))
+			return(JS_FALSE);
+	}
 
 	if(len==0)
 		len=filelength(fileno(p->fp))-offset;
@@ -1301,26 +1322,31 @@ static JSBool js_file_set(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
 			break;
 		case FILE_PROP_POSITION:
 			if(p->fp!=NULL) {
-				JS_ValueToInt32(cx,*vp,&i);
+				if(!JS_ValueToInt32(cx,*vp,&i))
+					return(JS_FALSE);
 				fseek(p->fp,i,SEEK_SET);
 			}
 			break;
 		case FILE_PROP_DATE:
-			JS_ValueToInt32(cx,*vp,&i);
+			if(!JS_ValueToInt32(cx,*vp,&i))
+				return(JS_FALSE);
 			setfdate(p->name,i);
 			break;
 		case FILE_PROP_LENGTH:
 			if(p->fp!=NULL) {
-				JS_ValueToInt32(cx,*vp,&i);
+				if(!JS_ValueToInt32(cx,*vp,&i))
+					return(JS_FALSE);
 				chsize(fileno(p->fp),i);
 			}
 			break;
 		case FILE_PROP_ATTRIBUTES:
-			JS_ValueToInt32(cx,*vp,&i);
+			if(!JS_ValueToInt32(cx,*vp,&i))
+				return(JS_FALSE);
 			CHMOD(p->name,i);
 			break;
 		case FILE_PROP_ETX:
-			JS_ValueToInt32(cx,*vp,&i);
+			if(!JS_ValueToInt32(cx,*vp,&i))
+				return(JS_FALSE);
 			p->etx = (uchar)i;
 			break;
 	}