diff --git a/Python/import.c b/Python/import.c
index 2a4b5cc..aa1272b 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -61,7 +61,7 @@
 /* New way to come up with the magic number: (YEAR-1995), MONTH, DAY */
 #define MAGIC (20121 | ((long)'\r'<<16) | ((long)'\n'<<24))
 
-PyObject *_PyImport_Modules; /* This becomes sys.modules */
+static PyObject *_PyImport_Modules; /* This becomes sys.modules */
 
 
 /* Initialize things */
@@ -461,7 +461,7 @@
 		if (!PyString_Check(v))
 			continue;
 		len = PyString_Size(v);
-		if (len + 2 + namelen + _PyImport_MaxSuffixSize >= buflen)
+		if (len + 2 + namelen + MAXSUFFIXSIZE >= buflen)
 			continue; /* Too long */
 		strcpy(buf, PyString_AsString(v));
 		if ((int)strlen(buf) != len)
diff --git a/Python/importdl.c b/Python/importdl.c
index 436a8de..44f57ac 100644
--- a/Python/importdl.c
+++ b/Python/importdl.c
@@ -126,6 +126,7 @@
 #endif
 
 #ifdef _AIX
+#undef USE_SHLIB /* AIX 4.2 and higher have dlfcn.h but we don't want it */
 #define DYNAMIC_LINK
 #define SHORT_EXT ".so"
 #define LONG_EXT "module.so"
@@ -201,14 +202,6 @@
 
 #endif /* DYNAMIC_LINK */
 
-/* Max length of module suffix searched for -- accommodates "module.slb" */
-#ifndef MAXSUFFIXSIZE
-#define MAXSUFFIXSIZE 12
-#endif
-
-/* Pass it on to import.c */
-int _PyImport_MaxSuffixSize = MAXSUFFIXSIZE;
-
 struct filedescr _PyImport_Filetab[] = {
 #ifdef SHORT_EXT
 	{SHORT_EXT, "rb", C_EXTENSION},
@@ -527,7 +520,7 @@
 	(*p)();
 	/* XXX Need check for err_occurred() here */
 
-	m = PyDict_GetItemString(_PyImport_Modules, name);
+	m = PyDict_GetItemString(PyImport_GetModuleDict(), name);
 	if (m == NULL) {
 		if (PyErr_Occurred() == NULL)
 			PyErr_SetString(PyExc_SystemError,
diff --git a/Python/importdl.h b/Python/importdl.h
index f1bdeab..4587841 100644
--- a/Python/importdl.h
+++ b/Python/importdl.h
@@ -42,9 +42,8 @@
 	enum filetype type;
 } _PyImport_Filetab[];
 
-extern PyObject *_PyImport_Modules;
-
 extern PyObject *_PyImport_LoadDynamicModule
 	Py_PROTO((char *name, char *pathname, FILE *));
 
-extern int _PyImport_MaxSuffixSize;
+/* Max length of module suffix searched for -- accommodates "module.slb" */
+#define MAXSUFFIXSIZE 12
