diff --git a/Python/modsupport.c b/Python/modsupport.c
index 9c5dbf9..9367684 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -33,20 +33,32 @@
 typedef double va_double;
 #endif
 
-/* initmodule3() has two additional parameters:
-   - doc is the documentation string;
-   - passthrough is passed as self to functions defined in the module.
+/* initmodule4() parameters:
+   - name is the module name
+   - methods is the list of top-level functions
+   - doc is the documentation string
+   - passthrough is passed as self to functions defined in the module
+   - api_version is the value of PYTHON_API_VERSION at the time the
+     module was compiled
 */
 
+static char api_version_warning[] =
+"WARNING: Python C API version mismatch for module %s:\n\
+  This Python has API version %d, module %s has version %s.\n";
+
 object *
-initmodule3(name, methods, doc, passthrough)
+initmodule4(name, methods, doc, passthrough, module_api_version)
 	char *name;
 	struct methodlist *methods;
 	char *doc;
 	object *passthrough;
+	int module_api_version;
 {
 	object *m, *d, *v;
 	struct methodlist *ml;
+	if (module_api_version != PYTHON_API_VERSION)
+		fprintf(stderr, api_version_warning,
+			name, PYTHON_API_VERSION, name, module_api_version);
 	if ((m = add_module(name)) == NULL) {
 		fprintf(stderr, "initializing module: %s\n", name);
 		fatal("can't create a module");
@@ -69,16 +81,6 @@
 	return m;
 }
 
-/* The standard initmodule() passes NULL for 'self' */
-
-object *
-initmodule(name, methods)
-	char *name;
-	struct methodlist *methods;
-{
-	return initmodule3(name, methods, (char *)NULL, (object *)NULL);
-}
-
 
 /* Helper for mkvalue() to scan the length of a format */
 
