diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index fe9dcfc1d7b50d6cbba6e4fa1751f2aa336918fa..d004589d2085d11a6a196f959641ec65b7672e39 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -1099,9 +1099,9 @@ static void unescape(char *p)
 	
 	dst=p;
 	for(;*p;p++) {
-		if(*p=='%' && isxdigit(*p) && isxdigit(*p)) {
-			sprintf(code,"%.2s",p);
-			*(dst++)=(char)strtol(p+1,NULL,16);
+		if(*p=='%' && isxdigit(*(p+1)) && isxdigit(*(p+2))) {
+			sprintf(code,"%.2s",p+1);
+			*(dst++)=(char)strtol(code,NULL,16);
 			p+=2;
 		}
 		else  {