diff --git a/valid.c b/valid.c
index 5630c6c..bfa34b2 100644
--- a/valid.c
+++ b/valid.c
@@ -3512,7 +3512,7 @@
 	    cur = dup;
 	    while (*cur != 0) {
 		nam = cur;
-		while ((*cur != 0) && (!IS_BLANK(*cur))) cur++;
+		while ((*cur != 0) && (!IS_BLANK_CH(*cur))) cur++;
 		save = *cur;
 		*cur = 0;
 		ent = xmlGetDocEntity(doc, nam);
@@ -3532,7 +3532,7 @@
 		if (save == 0)
 		    break;
 		*cur = save;
-		while (IS_BLANK(*cur)) cur++;
+		while (IS_BLANK_CH(*cur)) cur++;
 	    }
 	    xmlFree(dup);
 	    break;
@@ -5463,7 +5463,7 @@
 			int i;
 
 			for (i = 0;i < len;i++) {
-			    if (!IS_BLANK(data[i])) {
+			    if (!IS_BLANK_CH(data[i])) {
 				xmlErrValidNode(ctxt, state->node,
 						XML_DTD_CONTENT_MODEL,
 	   "Element %s content does not follow the DTD, Text not allowed\n",
@@ -5764,7 +5764,7 @@
 		    if (child->type == XML_TEXT_NODE) {
 			const xmlChar *content = child->content;
 
-			while (IS_BLANK(*content))
+			while (IS_BLANK_CH(*content))
 			    content++;
 			if (*content == 0) {
 			    xmlErrValidNode(ctxt, elem,
@@ -6070,7 +6070,7 @@
 	cur = dup;
 	while (*cur != 0) {
 	    str = cur;
-	    while ((*cur != 0) && (!IS_BLANK(*cur))) cur++;
+	    while ((*cur != 0) && (!IS_BLANK_CH(*cur))) cur++;
 	    save = *cur;
 	    *cur = 0;
 	    id = xmlGetID(ctxt->doc, str);
@@ -6083,7 +6083,7 @@
 	    if (save == 0)
 		break;
 	    *cur = save;
-	    while (IS_BLANK(*cur)) cur++;
+	    while (IS_BLANK_CH(*cur)) cur++;
 	}
 	xmlFree(dup);
     } else if (attr->atype == XML_ATTRIBUTE_IDREF) {
@@ -6106,7 +6106,7 @@
 	cur = dup;
 	while (*cur != 0) {
 	    str = cur;
-	    while ((*cur != 0) && (!IS_BLANK(*cur))) cur++;
+	    while ((*cur != 0) && (!IS_BLANK_CH(*cur))) cur++;
 	    save = *cur;
 	    *cur = 0;
 	    id = xmlGetID(ctxt->doc, str);
@@ -6119,7 +6119,7 @@
 	    if (save == 0)
 		break;
 	    *cur = save;
-	    while (IS_BLANK(*cur)) cur++;
+	    while (IS_BLANK_CH(*cur)) cur++;
 	}
 	xmlFree(dup);
     }
