diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index df112d3..981dc8c 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -439,7 +439,7 @@
 		re->re_realpat = pattern;
 		Py_INCREF(givenpat);
 		re->re_givenpat = givenpat;
-		error = (char *)re_compile_pattern((unsigned char *)pat, size, &re->re_patbuf);
+		error = _Py_re_compile_pattern((unsigned char *)pat, size, &re->re_patbuf);
 		if (error != NULL) {
 			PyErr_SetString(RegexError, error);
 			goto finally;
diff --git a/Modules/regexpr.c b/Modules/regexpr.c
index a90363a..4279d61 100644
--- a/Modules/regexpr.c
+++ b/Modules/regexpr.c
@@ -1157,7 +1157,7 @@
 	} \
 }
 
-unsigned char *re_compile_pattern(unsigned char *regex, int size, regexp_t bufp)
+char *re_compile_pattern(unsigned char *regex, int size, regexp_t bufp)
 {
 	int a;
 	int pos;
@@ -1535,36 +1535,36 @@
 	STORE(Cend);
 	SET_FIELDS;
 	if(!re_optimize(bufp))
-		return (unsigned char *)"Optimization error";
+		return "Optimization error";
 	return NULL;
 
   op_error:
 	SET_FIELDS;
-	return (unsigned char *)"Badly placed special character";
+	return "Badly placed special character";
 
   bad_match_register:
 	SET_FIELDS;
-	return (unsigned char *)"Bad match register number";
+	return "Bad match register number";
    
   hex_error:
 	SET_FIELDS;
-	return (unsigned char *)"Bad hexadecimal number";
+	return "Bad hexadecimal number";
    
   parenthesis_error:
 	SET_FIELDS;
-	return (unsigned char *)"Badly placed parenthesis";
+	return "Badly placed parenthesis";
    
   out_of_memory:
 	SET_FIELDS;
-	return (unsigned char *)"Out of memory";
+	return "Out of memory";
    
   ends_prematurely:
 	SET_FIELDS;
-	return (unsigned char *)"Regular expression ends prematurely";
+	return "Regular expression ends prematurely";
 
   too_complex:
 	SET_FIELDS;
-	return (unsigned char *)"Regular expression too complex";
+	return "Regular expression too complex";
 }
 
 #undef CHARAT
diff --git a/Modules/regexpr.h b/Modules/regexpr.h
index 729088e..dd66325 100644
--- a/Modules/regexpr.h
+++ b/Modules/regexpr.h
@@ -101,7 +101,7 @@
 /* This sets the syntax to use and returns the previous syntax.  The
  * syntax is specified by a bit mask of the above defined bits. */
 
-unsigned char *re_compile_pattern(unsigned char *regex, int regex_size, regexp_t compiled);
+char *re_compile_pattern(unsigned char *regex, int regex_size, regexp_t compiled);
 /* This compiles the regexp (given in regex and length in regex_size).
  * This returns NULL if the regexp compiled successfully, and an error
  * message if an error was encountered.  The buffer field must be
@@ -138,7 +138,7 @@
 extern unsigned char re_syntax_table[256];
 void re_compile_initialize();
 int re_set_syntax();
-unsigned char *re_compile_pattern();
+char *re_compile_pattern();
 int re_match();
 int re_search();
 void re_compile_fastmap();
