diff --git a/Python/frozen.c b/Python/frozen.c
index 5c1d3b4..6339314 100644
--- a/Python/frozen.c
+++ b/Python/frozen.c
@@ -1,3 +1,31 @@
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
+/* Dummy frozen modules initializer */
+
+#include "Python.h"
+
 /* In order to test the support for frozen modules, by default we
    define a single frozen module, __hello__.  Loading it will print
    some famous words... */
@@ -15,7 +43,7 @@
 	char *name;
 	unsigned char *code;
 	int size;
-} frozen_modules[] = {
+} _PyImport_FrozenModules[] = {
 	{"__hello__", M___hello__, 81},
 	{0, 0, 0} /* sentinel */
 };
diff --git a/Python/frozenmain.c b/Python/frozenmain.c
index 15e6144..17979b3 100644
--- a/Python/frozenmain.c
+++ b/Python/frozenmain.c
@@ -26,13 +26,9 @@
 
 #include "Python.h"
 
-extern int Py_DebugFlag; /* For parser.c, declared in pythonrun.c */
-extern int Py_VerboseFlag; /* For import.c, declared in pythonrun.c */
-extern int Py_SuppressPrintingFlag; /* For ceval.c, declared in pythonrun.c */
-
 /* Subroutines that live in their own file */
-extern char *getversion();
-extern char *getcopyright();
+extern char *Py_GetVersion();
+extern char *Py_GetCopyright();
 
 /* For getprogramname(); set by main() */
 static char *argv0;
@@ -69,7 +65,7 @@
 
 	if (Py_VerboseFlag)
 		fprintf(stderr, "Python %s\n%s\n",
-			getversion(), getcopyright());
+			Py_GetVersion(), Py_GetCopyright());
 	Py_Initialize();
 	PySys_SetArgv(argc, argv);
 
diff --git a/Python/getcompiler.c b/Python/getcompiler.c
index 0816717..56ff486 100644
--- a/Python/getcompiler.c
+++ b/Python/getcompiler.c
@@ -22,26 +22,30 @@
 
 ******************************************************************/
 
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
+/* Return the compiler identification, if possible. */
+
+#include "Python.h"
 
 #ifndef COMPILER
+
 #ifdef __GNUC__
 #define COMPILER " [GCC " __VERSION__ "]"
 #endif
+
 #endif /* !COMPILER */
 
 #ifndef COMPILER
+
 #ifdef __cplusplus
 #define COMPILER "[C++]"
 #else
 #define COMPILER "[C]"
 #endif
+
 #endif /* !COMPILER */
 
 char *
-getcompiler()
+Py_GetCompiler()
 {
 	return COMPILER;
 }
diff --git a/Python/getcopyright.c b/Python/getcopyright.c
index 5750043..5ed7787 100644
--- a/Python/getcopyright.c
+++ b/Python/getcopyright.c
@@ -1,9 +1,33 @@
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
 /* Return the copyright string.  This is updated manually. */
 
 #include "Python.h"
 
 const char *
-getcopyright()
+Py_GetCopyright()
 {
 	return "Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam";
 }
diff --git a/Python/getplatform.c b/Python/getplatform.c
index 01e6835..7142fd6 100644
--- a/Python/getplatform.c
+++ b/Python/getplatform.c
@@ -1,9 +1,35 @@
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
+#include "Python.h"
+
 #ifndef PLATFORM
 #define PLATFORM "unknown"
 #endif
 
 char *
-getplatform()
+Py_GetPlatform()
 {
 	return PLATFORM;
 }
diff --git a/Python/getversion.c b/Python/getversion.c
index caf5aaa..efc7849 100644
--- a/Python/getversion.c
+++ b/Python/getversion.c
@@ -1,3 +1,27 @@
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
 /* Return the full version string. */
 
 #include "Python.h"
@@ -12,12 +36,12 @@
 #define DATE "October 13 1995"
 #endif
 
-extern const char *getcompiler();
+extern const char *Py_GetCompiler();
 
 const char *
-getversion()
+Py_GetVersion()
 {
 	static char version[80];
-	sprintf(version, VERSION, PATCHLEVEL, DATE, getcompiler());
+	sprintf(version, VERSION, PATCHLEVEL, DATE, Py_GetCompiler());
 	return version;
 }
