diff --git a/Objects/longobject.c b/Objects/longobject.c
index 2e13d61..0fd699c 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -1397,7 +1397,7 @@
 		n >>= 1;
 	/* n <- total # of bits needed, while setting p to end-of-string */
 	n = 0;
-	while (_PyLong_DigitValue[Py_CHARMASK(*p)] < base)
+	while (_PyLong_DigitValue[(unsigned)Py_CHARMASK(*p)] < base)
 		++p;
 	*str = p;
 	/* n <- # of Python digits needed, = ceiling(n/PyLong_SHIFT). */
@@ -1418,7 +1418,7 @@
 	bits_in_accum = 0;
 	pdigit = z->ob_digit;
 	while (--p >= start) {
-		int k = _PyLong_DigitValue[Py_CHARMASK(*p)];
+		int k = _PyLong_DigitValue[(unsigned)Py_CHARMASK(*p)];
 		assert(k >= 0 && k < base);
 		accum |= (twodigits)(k << bits_in_accum);
 		bits_in_accum += bits_per_char;
@@ -1609,7 +1609,7 @@
 
 		/* Find length of the string of numeric characters. */
 		scan = str;
-		while (_PyLong_DigitValue[Py_CHARMASK(*scan)] < base)
+		while (_PyLong_DigitValue[(unsigned)Py_CHARMASK(*scan)] < base)
 			++scan;
 
 		/* Create a long object that can contain the largest possible
@@ -1635,10 +1635,10 @@
 		/* Work ;-) */
 		while (str < scan) {
 			/* grab up to convwidth digits from the input string */
-			c = (digit)_PyLong_DigitValue[Py_CHARMASK(*str++)];
+			c = (digit)_PyLong_DigitValue[(unsigned)Py_CHARMASK(*str++)];
 			for (i = 1; i < convwidth && str != scan; ++i, ++str) {
 				c = (twodigits)(c *  base +
-					_PyLong_DigitValue[Py_CHARMASK(*str)]);
+					_PyLong_DigitValue[(unsigned)Py_CHARMASK(*str)]);
 				assert(c < PyLong_BASE);
 			}
 
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index c5acd1b..317d03b 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -480,13 +480,13 @@
 	/* Single characters are shared when using this constructor.
            Restrict to ASCII, since the input must be UTF-8. */
 	if (size == 1 && Py_CHARMASK(*u) < 128) {
-	    unicode = unicode_latin1[Py_CHARMASK(*u)];
+	    unicode = unicode_latin1[(unsigned)Py_CHARMASK(*u)];
 	    if (!unicode) {
 		unicode = _PyUnicode_New(1);
 		if (!unicode)
 		    return NULL;
 		unicode->str[0] = Py_CHARMASK(*u);
-		unicode_latin1[Py_CHARMASK(*u)] = unicode;
+		unicode_latin1[(unsigned)Py_CHARMASK(*u)] = unicode;
 	    }
 	    Py_INCREF(unicode);
 	    return (PyObject *)unicode;
