diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index b1d40b0faa7eec88e3a12f0df8468489efce6d6f..d31f5fea1c7a3a59b84e32eb734f1e2910dbf029 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -574,8 +574,8 @@ js_html_encode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 {
 	int			ch;
 	ulong		i,j;
-	char*		inbuf;
-	char*		outbuf;
+	uchar*		inbuf;
+	uchar*		outbuf;
 	JSBool		exascii=JS_FALSE;
 	JSString*	js_str;
 
@@ -617,7 +617,7 @@ js_html_encode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 				j+=sprintf(outbuf+j,"§");
 				break;
 			default:
-				if(inbuf[i]>' ' && inbuf[i]<DEL)
+				if(inbuf[i]>=' ' && inbuf[i]<DEL)
 					outbuf[j++]=inbuf[i];
 				else if(exascii && inbuf[i]&0x80) {
 					ch=inbuf[i]^0x80;
@@ -626,7 +626,7 @@ js_html_encode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 					else
 						j+=sprintf(outbuf+j,"&#%u;",exasctbl[ch].value);
 				}
-				else if((uchar)inbuf[i]>=' ') /* strip unknown control chars */
+				else if(inbuf[i]>' ') /* strip unknown control chars */
 					j+=sprintf(outbuf+j,"&#%u;",inbuf[i]);
 				break;
 		}
@@ -648,8 +648,8 @@ js_html_decode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 	int			ch;
 	int			val;
 	ulong		i,j;
-	char*		inbuf;
-	char*		outbuf;
+	uchar*		inbuf;
+	uchar*		outbuf;
 	char		token[16];
 	size_t		t;
 	JSString*	js_str;