diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index c4a066f..90886f2 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -397,7 +397,7 @@
 		PyErr_SetString(PyExc_ValueError, "format mismatch");
 		return NULL;
 	}
-	while (*s && isspace(*s))
+	while (*s && isspace(Py_CHARMASK(*s)))
 		s++;
 	if (*s) {
 		PyErr_Format(PyExc_ValueError,
diff --git a/Objects/intobject.c b/Objects/intobject.c
index 72d5323..9a1f0e6 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -182,7 +182,7 @@
 		x = (long) PyOS_strtoul(s, &end, base);
 	else
 		x = PyOS_strtol(s, &end, base);
-	if (end == s || !isalnum(end[-1]))
+	if (end == s || !isalnum(Py_CHARMASK(end[-1])))
 		goto bad;
 	while (*end && isspace(Py_CHARMASK(*end)))
 		end++;
diff --git a/Python/errors.c b/Python/errors.c
index 7f30f7e..8d02b8e 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -402,7 +402,7 @@
 	for (f = format; *f; f++) {
 		if (*f == '%') {
 			const char* p = f;
-			while (*++f && *f != '%' && !isalpha(*f))
+			while (*++f && *f != '%' && !isalpha(Py_CHARMASK(*f)))
 				;
 			switch (*f) {
 			case 'c':
@@ -457,15 +457,15 @@
 			/* parse the width.precision part (we're only
 			   interested in the precision value, if any) */
 			n = 0;
-			while (isdigit(*f))
+			while (isdigit(Py_CHARMASK(*f)))
 				n = (n*10) + *f++ - '0';
 			if (*f == '.') {
 				f++;
 				n = 0;
-				while (isdigit(*f))
+				while (isdigit(Py_CHARMASK(*f)))
 					n = (n*10) + *f++ - '0';
 			}
-			while (*f && *f != '%' && !isalpha(*f))
+			while (*f && *f != '%' && !isalpha(Py_CHARMASK(*f)))
 				f++;
 			switch (*f) {
 			case 'c':
