diff --git a/Modules/regexpr.c b/Modules/regexpr.c
index 9f03e7c..1eebdb8 100644
--- a/Modules/regexpr.c
+++ b/Modules/regexpr.c
@@ -26,7 +26,7 @@
 
 #include "config.h" /* For Win* specific redefinition of printf c.s. */
 
-#include "myproto.h" /* For PROTO macro --Guido */
+#include "myproto.h" /* For Py_PROTO macro --Guido */
 
 #include <stdio.h>
 #include <assert.h>
@@ -152,7 +152,7 @@
 
 #endif /* emacs */
 
-static void re_compile_initialize PROTO((void));
+static void re_compile_initialize Py_PROTO((void));
 static void re_compile_initialize()
 {
   int a;
@@ -262,7 +262,7 @@
   return ret;
 }
 
-static int hex_char_to_decimal PROTO((int));
+static int hex_char_to_decimal Py_PROTO((int));
 static int hex_char_to_decimal(ch)
 int ch;
 {
@@ -773,7 +773,7 @@
 #undef SET_FIELDS
 
 static void re_compile_fastmap_aux
-	PROTO((char *, int, char *, char *, char *));
+	Py_PROTO((char *, int, char *, char *, char *));
 static void re_compile_fastmap_aux(code, pos, visited, can_be_null, fastmap)
 char *code, *visited, *can_be_null, *fastmap;
 int pos;
@@ -870,7 +870,7 @@
       }
 }
 
-static int re_do_compile_fastmap PROTO((char *, int, int, char *, char *));
+static int re_do_compile_fastmap Py_PROTO((char *, int, int, char *, char *));
 static int re_do_compile_fastmap(buffer, used, pos, can_be_null, fastmap)
 char *buffer, *fastmap, *can_be_null;
 int used, pos;
diff --git a/Parser/printgrammar.c b/Parser/printgrammar.c
index e3da97e..705cbcb 100644
--- a/Parser/printgrammar.c
+++ b/Parser/printgrammar.c
@@ -49,7 +49,7 @@
 	fprintf(fp, "#include \"grammar.h\"\n");
 	printdfas(g, fp);
 	printlabels(g, fp);
-	fprintf(fp, "grammar gram = {\n");
+	fprintf(fp, "grammar _PyParser_Grammar = {\n");
 	fprintf(fp, "\t%d,\n", g->g_ndfas);
 	fprintf(fp, "\tdfas,\n");
 	fprintf(fp, "\t{%d, labels},\n", g->g_ll.ll_nlabels);
diff --git a/Python/getmtime.c b/Python/getmtime.c
index a54d3b4..793c663 100644
--- a/Python/getmtime.c
+++ b/Python/getmtime.c
@@ -37,10 +37,9 @@
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include "rename2.h"
 
 long
-getmtime(path)
+PyOS_GetLastModificationTime(path)
 	char *path;
 {
 	struct stat st;
diff --git a/Python/graminit.c b/Python/graminit.c
index 7b31a31..ca08e00 100644
--- a/Python/graminit.c
+++ b/Python/graminit.c
@@ -1445,7 +1445,7 @@
 	{1, "class"},
 	{312, 0},
 };
-grammar gram = {
+grammar _PyParser_Grammar = {
 	57,
 	dfas,
 	{124, labels},
diff --git a/Python/mystrtoul.c b/Python/mystrtoul.c
index ed0e526..6f8e9bd 100644
--- a/Python/mystrtoul.c
+++ b/Python/mystrtoul.c
@@ -39,8 +39,6 @@
 #define Py_CHARMASK(c)		((c) & 0xff)
 #endif
 
-#include "rename2.h"
-
 /* strtol and strtoul, renamed to avoid conflicts */
 
 /*
@@ -61,7 +59,7 @@
 #include <errno.h>
 
 unsigned long
-mystrtoul(str, ptr, base)
+PyOS_strtoul(str, ptr, base)
 register char *	str;
 char **		ptr;
 int		base;
@@ -148,7 +146,7 @@
 }
 
 long
-mystrtol(str, ptr, base)
+PyOS_strtol(str, ptr, base)
 char *	str;
 char ** ptr;
 int	base;
@@ -163,7 +161,7 @@
 	if (sign == '+' || sign == '-')
 		str++;
 	
-	result = (long) mystrtoul(str, ptr, base);
+	result = (long) PyOS_strtoul(str, ptr, base);
 	
 	/* Signal overflow if the result appears negative,
 	   except for the largest negative integer */
