diff --git a/Include/cobject.h b/Include/cobject.h
index db2ce23..672e029 100644
--- a/Include/cobject.h
+++ b/Include/cobject.h
@@ -62,6 +62,10 @@
 extern void *
 PyCObject_AsVoidPtr Py_PROTO((PyObject *));
 
+/* Import a pointer to a C object from a module using a PyCObject. */
+extern void *
+PyCObject_Import Py_PROTO((char *module_name, char *cobject_name));
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/Objects/cobject.c b/Objects/cobject.c
index 4016b91..49b7bc9 100644
--- a/Objects/cobject.c
+++ b/Objects/cobject.c
@@ -57,6 +57,44 @@
 	return (PyObject *)self;
 }
 
+void *
+PyCObject_AsVoidPtr(self)
+	PyObject *self;
+{
+        if(self)
+	  {
+	    if(self->ob_type == &PyCObject_Type)
+	      return ((PyCObject *)self)->cobject;
+	    PyErr_SetString(PyExc_TypeError,
+			    "PyCObject_AsVoidPtr with non-C-object");
+	  }
+	if(! PyErr_Occurred())
+	    PyErr_SetString(PyExc_TypeError,
+			    "PyCObject_AsVoidPtr called with null pointer");
+	return NULL;
+}
+
+void *
+PyCObject_Import(module_name, name)
+     char *module_name;
+     char *name;
+{
+  PyObject *m, *c;
+  void *r=NULL;
+  
+  if(m=PyImport_ImportModule(module_name))
+    {
+      if(c=PyObject_GetAttrString(m,name))
+	{
+	  r=PyCObject_AsVoidPtr(c);
+	  Py_DECREF(c);
+	}
+      Py_DECREF(m);
+    }
+
+  return r;
+}
+
 static void
 PyCObject_dealloc(self)
 	PyCObject *self;
@@ -65,6 +103,7 @@
 	PyMem_DEL(self);
 }
 
+
 static char PyCObject_Type__doc__[] = 
 "C objects to be exported from one extension module to another\n\
 \n\
@@ -98,21 +137,3 @@
 	0L,0L,0L,0L,
 	PyCObject_Type__doc__ /* Documentation string */
 };
-
-void *
-PyCObject_AsVoidPtr(self)
-	PyObject *self;
-{
-        if(self)
-	  {
-	    if(self->ob_type == &PyCObject_Type)
-	      return ((PyCObject *)self)->cobject;
-	    PyErr_SetString(PyExc_TypeError,
-			    "PyCObject_AsVoidPtr with non-C-object");
-	  }
-	if(! PyErr_Occurred())
-	    PyErr_SetString(
-               PyExc_TypeError,
-	       "PyCObject_AsVoidPtr called with null pointer");
-	return NULL;
-}
diff --git a/PC/python_nt.def b/PC/python_nt.def
index ee282b1..b05696e 100644
--- a/PC/python_nt.def
+++ b/PC/python_nt.def
@@ -351,4 +351,5 @@
 	_Py_c_diff
 	PyCObject_FromVoidPtr
 	PyCObject_AsVoidPtr
+	PyCObject_Import
 	Py_GetBuildInfo
