diff --git a/py/unicode.c b/py/unicode.c
index 1cd82f3..131ddc8 100644
--- a/py/unicode.c
+++ b/py/unicode.c
@@ -94,28 +94,28 @@
 }
 
 /*
-bool char_is_alpha_or_digit(unichar c) {
+bool unichar_is_alpha_or_digit(unichar c) {
     return c < 128 && (attr[c] & (FL_ALPHA | FL_DIGIT)) != 0;
 }
 */
 
-bool char_is_upper(unichar c) {
+bool unichar_isupper(unichar c) {
     return c < 128 && (attr[c] & FL_UPPER) != 0;
 }
 
-bool char_is_lower(unichar c) {
+bool unichar_islower(unichar c) {
     return c < 128 && (attr[c] & FL_LOWER) != 0;
 }
 
 unichar unichar_tolower(unichar c) {
-    if (char_is_upper(c)) {
+    if (unichar_isupper(c)) {
         return c + 0x20;
     }
     return c;
 }
 
 unichar unichar_toupper(unichar c) {
-    if (char_is_lower(c)) {
+    if (unichar_islower(c)) {
         return c - 0x20;
     }
     return c;
