diff --git a/src/xpdev/gen_defs.h b/src/xpdev/gen_defs.h
index 2173e830b595e1771854ab98142a87d8fb9f04f2..ebf2d1b55b21ba94734d80f9db2e344c0a45c690 100644
--- a/src/xpdev/gen_defs.h
+++ b/src/xpdev/gen_defs.h
@@ -186,23 +186,23 @@ typedef struct {
 #define SAFECOPY(dst,src)	sprintf(dst,"%.*s",(int)sizeof(dst)-1,src)
 
 /* Replace every occurance of c1 in str with c2, using p as a temporary char pointer */
-#define REPLACE_CHARS(str,c1,c2,p)	for(p=(str);*p;p++) if(*p==(c1)) *p=(c2);
+#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(*(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)++;
 
 /****************************************************************************/
 /* MALLOC/FREE Macros for various compilers and environments				*/