diff --git a/src/xpdev/gen_defs.h b/src/xpdev/gen_defs.h
index b1cb2adcd80c5d187d45625ed2967ae254d8644f..54f6a53ec7fb285270d93c3c73c64ca89ba3c9e5 100644
--- a/src/xpdev/gen_defs.h
+++ b/src/xpdev/gen_defs.h
@@ -323,20 +323,20 @@ typedef struct {
 #define REPLACE_CHARS(str,c1,c2,p)	for((p)=(str);*(p);(p)++) if(*(p)==(c1)) *(p)=(c2);
 
 /* ASCIIZ char* parsing helper macros */
-#define SKIP_WHITESPACE(p)			while(*(p) && isspace(*(p)))			(p)++;
-#define FIND_WHITESPACE(p)			while(*(p) && !isspace(*(p)))			(p)++;
-#define SKIP_CHAR(p,c)				while(*(p)==c)							(p)++;
-#define FIND_CHAR(p,c)				while(*(p) && *(p)!=c)					(p)++;
-#define SKIP_CHARSET(p,s)			while(*(p) && strchr(s,*(p))!=NULL)		(p)++;
-#define FIND_CHARSET(p,s)			while(*(p) && strchr(s,*(p))==NULL)		(p)++;
-#define SKIP_ALPHA(p)				while(*(p) && isalpha(*(p)))			(p)++;
-#define FIND_ALPHA(p)				while(*(p) && !isalpha(*(p)))			(p)++;
-#define SKIP_ALPHANUMERIC(p)		while(*(p) && isalnum(*(p)))			(p)++;
-#define FIND_ALPHANUMERIC(p)		while(*(p) && !isalnum(*(p)))			(p)++;
-#define SKIP_DIGIT(p)				while(*(p) && isdigit(*(p)))			(p)++;
-#define FIND_DIGIT(p)				while(*(p) && !isdigit(*(p)))			(p)++;
-#define SKIP_HEXDIGIT(p)			while(*(p) && isxdigit(*(p)))			(p)++;
-#define FIND_HEXDIGIT(p)			while(*(p) && !isxdigit(*(p)))			(p)++;
+#define SKIP_WHITESPACE(p)			while(*(p) && isspace((unsigned char)*(p)))			(p)++;
+#define FIND_WHITESPACE(p)			while(*(p) && !isspace((unsigned char)*(p)))		(p)++;
+#define SKIP_CHAR(p,c)				while(*(p)==c)										(p)++;
+#define FIND_CHAR(p,c)				while(*(p) && *(p)!=c)								(p)++;
+#define SKIP_CHARSET(p,s)			while(*(p) && strchr(s,*(p))!=NULL)					(p)++;
+#define FIND_CHARSET(p,s)			while(*(p) && strchr(s,*(p))==NULL)					(p)++;
+#define SKIP_ALPHA(p)				while(*(p) && isalpha((unsigned char)*(p)))			(p)++;
+#define FIND_ALPHA(p)				while(*(p) && !isalpha((unsigned char)*(p)))		(p)++;
+#define SKIP_ALPHANUMERIC(p)		while(*(p) && isalnum((unsigned char)*(p)))			(p)++;
+#define FIND_ALPHANUMERIC(p)		while(*(p) && !isalnum((unsigned char)*(p)))		(p)++;
+#define SKIP_DIGIT(p)				while(*(p) && isdigit((unsigned char)*(p)))			(p)++;
+#define FIND_DIGIT(p)				while(*(p) && !isdigit((unsigned char)*(p)))		(p)++;
+#define SKIP_HEXDIGIT(p)			while(*(p) && isxdigit((unsigned char)*(p)))		(p)++;
+#define FIND_HEXDIGIT(p)			while(*(p) && !isxdigit((unsigned char)*(p)))		(p)++;
 
 /* Variable/buffer initialization (with zeros) */
 #define ZERO_VAR(var)				memset(&(var),0,sizeof(var))