Patch supplied by Burton Radons for his own SF bug #487390: Modifying
type.__module__ behavior.

This adds the module name and a dot in front of the type name in every
type object initializer, except for built-in types (and those that
already had this).  Note that it touches lots of Mac modules -- I have
no way to test these but the changes look right.  Apologies if they're
not.  This also touches the weakref docs, which contains a sample type
object initializer.  It also touches the mmap test output, because the
mmap type's repr is included in that output.  It touches object.h to
put the correct description in a comment.
diff --git a/Doc/lib/libweakref.tex b/Doc/lib/libweakref.tex
index d56f1cb..fda27d2 100644
--- a/Doc/lib/libweakref.tex
+++ b/Doc/lib/libweakref.tex
@@ -234,7 +234,7 @@
 PyTypeObject PyInstance_Type = {
     PyObject_HEAD_INIT(&PyType_Type)
     0,
-    "instance",
+    "module.instance",
 
     /* Lots of stuff omitted for brevity... */
 
diff --git a/Include/object.h b/Include/object.h
index 52d6dbf..347f9c4 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -219,7 +219,7 @@
 
 typedef struct _typeobject {
 	PyObject_VAR_HEAD
-	char *tp_name; /* For printing */
+	char *tp_name; /* For printing, in format "<module>.<name>" */
 	int tp_basicsize, tp_itemsize; /* For allocation */
 	
 	/* Methods to implement standard operations */
diff --git a/Lib/test/output/test_mmap b/Lib/test/output/test_mmap
index f1a25a9..4adf702 100644
--- a/Lib/test/output/test_mmap
+++ b/Lib/test/output/test_mmap
@@ -1,5 +1,5 @@
 test_mmap
-<type 'mmap'>
+<type 'mmap.mmap'>
   Position of foo: 1.0 pages
   Length of file: 2.0 pages
   Contents of byte 0: '\x00'
diff --git a/Mac/Lib/test/mkcwproj/mkcwtestmodule.c b/Mac/Lib/test/mkcwproj/mkcwtestmodule.c
index 3271df9..ad8099b 100644
--- a/Mac/Lib/test/mkcwproj/mkcwtestmodule.c
+++ b/Mac/Lib/test/mkcwproj/mkcwtestmodule.c
@@ -98,7 +98,7 @@
 	 * to be portable to Windows without using C++. */
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"Xxo",			/*tp_name*/
+	"Xxmodule.Xxo",		/*tp_name*/
 	sizeof(XxoObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/Nav.c b/Mac/Modules/Nav.c
index 15cec8b..aa843c7 100644
--- a/Mac/Modules/Nav.c
+++ b/Mac/Modules/Nav.c
@@ -387,7 +387,7 @@
 static PyTypeObject Navrrtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"NavReplyRecord",			/*tp_name*/
+	"Nav.NavReplyRecord",			/*tp_name*/
 	sizeof(navrrobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/ae/_AEmodule.c b/Mac/Modules/ae/_AEmodule.c
index 537388e..426f4eb 100644
--- a/Mac/Modules/ae/_AEmodule.c
+++ b/Mac/Modules/ae/_AEmodule.c
@@ -782,7 +782,7 @@
 PyTypeObject AEDesc_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"AEDesc", /*tp_name*/
+	"_AE.AEDesc", /*tp_name*/
 	sizeof(AEDescObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/calldll.c b/Mac/Modules/calldll.c
index e8d4736..8d130ce 100644
--- a/Mac/Modules/calldll.c
+++ b/Mac/Modules/calldll.c
@@ -565,7 +565,7 @@
 static PyTypeObject Cdrtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"routine",			/*tp_name*/
+	"calldll.routine",		/*tp_name*/
 	sizeof(cdrobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -755,7 +755,7 @@
 static PyTypeObject Cdctype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"callable",			/*tp_name*/
+	"calldll.callable",		/*tp_name*/
 	sizeof(cdcobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -964,7 +964,7 @@
 static PyTypeObject Cdftype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"fragment",			/*tp_name*/
+	"calldll.fragment",		/*tp_name*/
 	sizeof(cdfobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/carbonevt/_CarbonEvt.c b/Mac/Modules/carbonevt/_CarbonEvt.c
index aab735b..731a2fa 100644
--- a/Mac/Modules/carbonevt/_CarbonEvt.c
+++ b/Mac/Modules/carbonevt/_CarbonEvt.c
@@ -356,7 +356,7 @@
 PyTypeObject EventRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventRef", /*tp_name*/
+	"CarbonEvents.EventRef", /*tp_name*/
 	sizeof(EventRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -539,7 +539,7 @@
 PyTypeObject EventQueueRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventQueueRef", /*tp_name*/
+	"CarbonEvents.EventQueueRef", /*tp_name*/
 	sizeof(EventQueueRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -631,7 +631,7 @@
 PyTypeObject EventLoopRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventLoopRef", /*tp_name*/
+	"CarbonEvents.EventLoopRef", /*tp_name*/
 	sizeof(EventLoopRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -741,7 +741,7 @@
 PyTypeObject EventLoopTimerRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventLoopTimerRef", /*tp_name*/
+	"CarbonEvents.EventLoopTimerRef", /*tp_name*/
 	sizeof(EventLoopTimerRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -875,7 +875,7 @@
 PyTypeObject EventHandlerRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventHandlerRef", /*tp_name*/
+	"CarbonEvents.EventHandlerRef", /*tp_name*/
 	sizeof(EventHandlerRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -970,7 +970,7 @@
 PyTypeObject EventHandlerCallRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventHandlerCallRef", /*tp_name*/
+	"CarbonEvents.EventHandlerCallRef", /*tp_name*/
 	sizeof(EventHandlerCallRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1085,7 +1085,7 @@
 PyTypeObject EventTargetRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventTargetRef", /*tp_name*/
+	"CarbonEvents.EventTargetRef", /*tp_name*/
 	sizeof(EventTargetRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1162,7 +1162,7 @@
 PyTypeObject EventHotKeyRef_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"EventHotKeyRef", /*tp_name*/
+	"CarbonEvents.EventHotKeyRef", /*tp_name*/
 	sizeof(EventHotKeyRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/cf/_CFmodule.c b/Mac/Modules/cf/_CFmodule.c
index fbdabbb..167fdda 100644
--- a/Mac/Modules/cf/_CFmodule.c
+++ b/Mac/Modules/cf/_CFmodule.c
@@ -336,7 +336,7 @@
 PyTypeObject CFTypeRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFTypeRef", /*tp_name*/
+	"_CF.CFTypeRef", /*tp_name*/
 	sizeof(CFTypeRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -488,7 +488,7 @@
 PyTypeObject CFArrayRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFArrayRef", /*tp_name*/
+	"_CF.CFArrayRef", /*tp_name*/
 	sizeof(CFArrayRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -647,7 +647,7 @@
 PyTypeObject CFMutableArrayRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFMutableArrayRef", /*tp_name*/
+	"_CF.CFMutableArrayRef", /*tp_name*/
 	sizeof(CFMutableArrayRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -781,7 +781,7 @@
 PyTypeObject CFDictionaryRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFDictionaryRef", /*tp_name*/
+	"_CF.CFDictionaryRef", /*tp_name*/
 	sizeof(CFDictionaryRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -899,7 +899,7 @@
 PyTypeObject CFMutableDictionaryRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFMutableDictionaryRef", /*tp_name*/
+	"_CF.CFMutableDictionaryRef", /*tp_name*/
 	sizeof(CFMutableDictionaryRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1051,7 +1051,7 @@
 PyTypeObject CFDataRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFDataRef", /*tp_name*/
+	"_CF.CFDataRef", /*tp_name*/
 	sizeof(CFDataRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1257,7 +1257,7 @@
 PyTypeObject CFMutableDataRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFMutableDataRef", /*tp_name*/
+	"_CF.CFMutableDataRef", /*tp_name*/
 	sizeof(CFMutableDataRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1890,7 +1890,7 @@
 PyTypeObject CFStringRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFStringRef", /*tp_name*/
+	"_CF.CFStringRef", /*tp_name*/
 	sizeof(CFStringRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -2197,7 +2197,7 @@
 PyTypeObject CFMutableStringRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFMutableStringRef", /*tp_name*/
+	"_CF.CFMutableStringRef", /*tp_name*/
 	sizeof(CFMutableStringRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -2601,7 +2601,7 @@
 PyTypeObject CFURLRef_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"CFURLRef", /*tp_name*/
+	"_CF.CFURLRef", /*tp_name*/
 	sizeof(CFURLRefObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/cm/_Cmmodule.c b/Mac/Modules/cm/_Cmmodule.c
index 3e66716..3de6497 100644
--- a/Mac/Modules/cm/_Cmmodule.c
+++ b/Mac/Modules/cm/_Cmmodule.c
@@ -289,7 +289,7 @@
 PyTypeObject ComponentInstance_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"ComponentInstance", /*tp_name*/
+	"_Cm.ComponentInstance", /*tp_name*/
 	sizeof(ComponentInstanceObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -616,7 +616,7 @@
 PyTypeObject Component_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Component", /*tp_name*/
+	"_Cm.Component", /*tp_name*/
 	sizeof(ComponentObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/ctbmodule.c b/Mac/Modules/ctbmodule.c
index dea35b7..129896e 100644
--- a/Mac/Modules/ctbmodule.c
+++ b/Mac/Modules/ctbmodule.c
@@ -473,7 +473,7 @@
 statichere PyTypeObject ctbcmtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,			/*ob_size*/
-	"CTBConnectionMgr",	/*tp_name*/
+	"ctb.CTBConnectionMgr",	/*tp_name*/
 	sizeof(ctbcmobject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/ctl/_Ctlmodule.c b/Mac/Modules/ctl/_Ctlmodule.c
index 16c4a32..1b60da8 100644
--- a/Mac/Modules/ctl/_Ctlmodule.c
+++ b/Mac/Modules/ctl/_Ctlmodule.c
@@ -2313,7 +2313,7 @@
 PyTypeObject Control_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Control", /*tp_name*/
+	"_Ctl.Control", /*tp_name*/
 	sizeof(ControlObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/dlg/_Dlgmodule.c b/Mac/Modules/dlg/_Dlgmodule.c
index f4f2a24..8a0dd4f 100644
--- a/Mac/Modules/dlg/_Dlgmodule.c
+++ b/Mac/Modules/dlg/_Dlgmodule.c
@@ -1008,7 +1008,7 @@
 PyTypeObject Dialog_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Dialog", /*tp_name*/
+	"_Dlg.Dialog", /*tp_name*/
 	sizeof(DialogObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/drag/_Dragmodule.c b/Mac/Modules/drag/_Dragmodule.c
index 3da0ade..6e35e03 100644
--- a/Mac/Modules/drag/_Dragmodule.c
+++ b/Mac/Modules/drag/_Dragmodule.c
@@ -673,7 +673,7 @@
 PyTypeObject DragObj_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"DragObj", /*tp_name*/
+	"_Drag.DragObj", /*tp_name*/
 	sizeof(DragObjObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/hfsplusmodule.c b/Mac/Modules/hfsplusmodule.c
index 425bdb8..4135cd0 100644
--- a/Mac/Modules/hfsplusmodule.c
+++ b/Mac/Modules/hfsplusmodule.c
@@ -331,7 +331,7 @@
 	 * to be portable to Windows without using C++. */
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"openfile",			/*tp_name*/
+	"hfsplus.openfile",		/*tp_name*/
 	sizeof(forkRefObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
@@ -505,7 +505,7 @@
 	 * to be portable to Windows without using C++. */
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"iterator",			/*tp_name*/
+	"hfsplus.iterator",		/*tp_name*/
 	sizeof(iteratorObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
@@ -1024,7 +1024,7 @@
 	 * to be portable to Windows without using C++. */
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"fsref",			/*tp_name*/
+	"hfsplus.fsref",		/*tp_name*/
 	sizeof(fsRefObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/htmlrender/HtmlRendermodule.c b/Mac/Modules/htmlrender/HtmlRendermodule.c
index afd5805..8015ab8 100644
--- a/Mac/Modules/htmlrender/HtmlRendermodule.c
+++ b/Mac/Modules/htmlrender/HtmlRendermodule.c
@@ -588,7 +588,7 @@
 PyTypeObject HtmlObject_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0, /*ob_size*/
-	"HtmlObject", /*tp_name*/
+	"HtmlRender.HtmlObject", /*tp_name*/
 	sizeof(HtmlObjectObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/icgluemodule.c b/Mac/Modules/icgluemodule.c
index 88e34b5..c0e56af 100644
--- a/Mac/Modules/icgluemodule.c
+++ b/Mac/Modules/icgluemodule.c
@@ -502,7 +502,7 @@
 static PyTypeObject Icitype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"ic_instance",			/*tp_name*/
+	"icglue.ic_instance",		/*tp_name*/
 	sizeof(iciobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/list/_Listmodule.c b/Mac/Modules/list/_Listmodule.c
index 71a8674..06e63de 100644
--- a/Mac/Modules/list/_Listmodule.c
+++ b/Mac/Modules/list/_Listmodule.c
@@ -649,7 +649,7 @@
 PyTypeObject List_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"List", /*tp_name*/
+	"_List.List", /*tp_name*/
 	sizeof(ListObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c
index 26d7d7f..9684def 100644
--- a/Mac/Modules/macfsmodule.c
+++ b/Mac/Modules/macfsmodule.c
@@ -233,7 +233,7 @@
 statichere PyTypeObject Mfsatype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"Alias",			/*tp_name*/
+	"macfs.Alias",			/*tp_name*/
 	sizeof(mfsaobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -332,7 +332,7 @@
 static PyTypeObject Mfsitype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"FInfo",			/*tp_name*/
+	"macfs.FInfo",			/*tp_name*/
 	sizeof(mfsiobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -735,7 +735,7 @@
 statichere PyTypeObject Mfsstype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"FSSpec",			/*tp_name*/
+	"macfs.FSSpec",			/*tp_name*/
 	sizeof(mfssobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -834,7 +834,7 @@
 statichere PyTypeObject Mfsrtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"FSRef",			/*tp_name*/
+	"macfs.FSRef",			/*tp_name*/
 	sizeof(mfsrobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/macmodule.c b/Mac/Modules/macmodule.c
index c71d8a9..7f80b19 100644
--- a/Mac/Modules/macmodule.c
+++ b/Mac/Modules/macmodule.c
@@ -486,7 +486,7 @@
 };
 
 static PyStructSequence_Desc stat_result_desc = {
-	"stat_result",
+	"mac.stat_result",
 	stat_result__doc__,
 	stat_result_fields,
 	10
@@ -504,7 +504,7 @@
 };
 
 static PyStructSequence_Desc xstat_result_desc = {
-	"xstat_result",
+	"mac.xstat_result",
 	stat_result__doc__,
 	xstat_result_fields,
 	13
diff --git a/Mac/Modules/macosmodule.c b/Mac/Modules/macosmodule.c
index 6b8b87d..d84040d 100644
--- a/Mac/Modules/macosmodule.c
+++ b/Mac/Modules/macosmodule.c
@@ -275,7 +275,7 @@
 static PyTypeObject Rftype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"ResourceFork",			/*tp_name*/
+	"MacOS.ResourceFork",		/*tp_name*/
 	sizeof(rfobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/macspeechmodule.c b/Mac/Modules/macspeechmodule.c
index b6c6c2c..9b6a1f7 100644
--- a/Mac/Modules/macspeechmodule.c
+++ b/Mac/Modules/macspeechmodule.c
@@ -258,7 +258,7 @@
 static PyTypeObject sctype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,			/*ob_size*/
-	"MacSpeechChannel",			/*tp_name*/
+	"macspeech.MacSpeechChannel", /*tp_name*/
 	sizeof(scobject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
@@ -375,7 +375,7 @@
 static PyTypeObject mvtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,			/*ob_size*/
-	"MacVoice",			/*tp_name*/
+	"macspeech.MacVoice",	/*tp_name*/
 	sizeof(mvobject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/menu/_Menumodule.c b/Mac/Modules/menu/_Menumodule.c
index f4a2ca8..8e94fef 100644
--- a/Mac/Modules/menu/_Menumodule.c
+++ b/Mac/Modules/menu/_Menumodule.c
@@ -2156,7 +2156,7 @@
 PyTypeObject Menu_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Menu", /*tp_name*/
+	"_Menu.Menu", /*tp_name*/
 	sizeof(MenuObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/mlte/_Mltemodule.c b/Mac/Modules/mlte/_Mltemodule.c
index 712599e..c0819d2 100644
--- a/Mac/Modules/mlte/_Mltemodule.c
+++ b/Mac/Modules/mlte/_Mltemodule.c
@@ -1148,7 +1148,7 @@
 PyTypeObject TXNObject_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"TXNObject", /*tp_name*/
+	"_Mlte.TXNObject", /*tp_name*/
 	sizeof(TXNObjectObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1264,7 +1264,7 @@
 PyTypeObject TXNFontMenuObject_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"TXNFontMenuObject", /*tp_name*/
+	"_Mlte.TXNFontMenuObject", /*tp_name*/
 	sizeof(TXNFontMenuObjectObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/qd/_Qdmodule.c b/Mac/Modules/qd/_Qdmodule.c
index a753b15..7c176d8 100644
--- a/Mac/Modules/qd/_Qdmodule.c
+++ b/Mac/Modules/qd/_Qdmodule.c
@@ -371,7 +371,7 @@
 PyTypeObject GrafPort_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"GrafPort", /*tp_name*/
+	"_Qd.GrafPort", /*tp_name*/
 	sizeof(GrafPortObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -502,7 +502,7 @@
 PyTypeObject BitMap_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"BitMap", /*tp_name*/
+	"_Qd.BitMap", /*tp_name*/
 	sizeof(BitMapObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -630,7 +630,7 @@
 staticforward PyTypeObject QDGlobalsAccess_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"QDGlobalsAccess", /*tp_name*/
+	"_Qd.QDGlobalsAccess", /*tp_name*/
 	sizeof(QDGlobalsAccessObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/qdoffs/_Qdoffsmodule.c b/Mac/Modules/qdoffs/_Qdoffsmodule.c
index 24c7fc9..5af63ef 100644
--- a/Mac/Modules/qdoffs/_Qdoffsmodule.c
+++ b/Mac/Modules/qdoffs/_Qdoffsmodule.c
@@ -136,7 +136,7 @@
 PyTypeObject GWorld_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"GWorld", /*tp_name*/
+	"_Qdoffs.GWorld", /*tp_name*/
 	sizeof(GWorldObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/qt/_Qtmodule.c b/Mac/Modules/qt/_Qtmodule.c
index bd387ce..962ee2a 100644
--- a/Mac/Modules/qt/_Qtmodule.c
+++ b/Mac/Modules/qt/_Qtmodule.c
@@ -932,7 +932,7 @@
 PyTypeObject MovieController_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"MovieController", /*tp_name*/
+	"_Qt.MovieController", /*tp_name*/
 	sizeof(MovieControllerObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1326,7 +1326,7 @@
 PyTypeObject TimeBase_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"TimeBase", /*tp_name*/
+	"_Qt.TimeBase", /*tp_name*/
 	sizeof(TimeBaseObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1603,7 +1603,7 @@
 PyTypeObject UserData_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"UserData", /*tp_name*/
+	"_Qt.UserData", /*tp_name*/
 	sizeof(UserDataObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -2637,7 +2637,7 @@
 PyTypeObject Media_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Media", /*tp_name*/
+	"_Qt.Media", /*tp_name*/
 	sizeof(MediaObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -3724,7 +3724,7 @@
 PyTypeObject Track_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Track", /*tp_name*/
+	"_Qt.Track", /*tp_name*/
 	sizeof(TrackObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -5796,7 +5796,7 @@
 PyTypeObject Movie_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Movie", /*tp_name*/
+	"_Qt.Movie", /*tp_name*/
 	sizeof(MovieObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/res/_Resmodule.c b/Mac/Modules/res/_Resmodule.c
index 3d59641..b29e852 100644
--- a/Mac/Modules/res/_Resmodule.c
+++ b/Mac/Modules/res/_Resmodule.c
@@ -548,7 +548,7 @@
 PyTypeObject Resource_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Resource", /*tp_name*/
+	"_Res.Resource", /*tp_name*/
 	sizeof(ResourceObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/snd/_Sndmodule.c b/Mac/Modules/snd/_Sndmodule.c
index 3389436..3812507 100644
--- a/Mac/Modules/snd/_Sndmodule.c
+++ b/Mac/Modules/snd/_Sndmodule.c
@@ -314,7 +314,7 @@
 staticforward PyTypeObject SndChannel_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"SndChannel", /*tp_name*/
+	"_Snd.SndChannel", /*tp_name*/
 	sizeof(SndChannelObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -442,7 +442,7 @@
 staticforward PyTypeObject SPB_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"SPB", /*tp_name*/
+	"_Snd.SPB", /*tp_name*/
 	sizeof(SPBObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/te/_TEmodule.c b/Mac/Modules/te/_TEmodule.c
index 2b06484..2f78e67 100644
--- a/Mac/Modules/te/_TEmodule.c
+++ b/Mac/Modules/te/_TEmodule.c
@@ -791,7 +791,7 @@
 PyTypeObject TE_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"TE", /*tp_name*/
+	"_TE.TE", /*tp_name*/
 	sizeof(TEObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/waste/wastemodule.c b/Mac/Modules/waste/wastemodule.c
index 921f297..734a2e7 100644
--- a/Mac/Modules/waste/wastemodule.c
+++ b/Mac/Modules/waste/wastemodule.c
@@ -346,7 +346,7 @@
 PyTypeObject WEO_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"WEO", /*tp_name*/
+	"waste.WEO", /*tp_name*/
 	sizeof(WEOObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
@@ -1711,7 +1711,7 @@
 PyTypeObject waste_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"waste", /*tp_name*/
+	"waste.waste", /*tp_name*/
 	sizeof(wasteObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Mac/Modules/win/_Winmodule.c b/Mac/Modules/win/_Winmodule.c
index 8dc9fad..fa0cfeb 100644
--- a/Mac/Modules/win/_Winmodule.c
+++ b/Mac/Modules/win/_Winmodule.c
@@ -2469,7 +2469,7 @@
 PyTypeObject Window_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0, /*ob_size*/
-	"Window", /*tp_name*/
+	"_Win.Window", /*tp_name*/
 	sizeof(WindowObject), /*tp_basicsize*/
 	0, /*tp_itemsize*/
 	/* methods */
diff --git a/Misc/ACKS b/Misc/ACKS
index e110f15..24d5d84 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -340,6 +340,7 @@
 Paul Prescod
 Donovan Preston
 Brian Quinlan
+Burton Radons
 Eric Raymond
 John Redford
 Terry Reedy
diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index feecfcc..11bf5c8 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -352,7 +352,7 @@
 PyTypeObject PyCursesPanel_Type = {
     PyObject_HEAD_INIT(NULL)
     0,			/*ob_size*/
-    "curses panel",	/*tp_name*/
+    "_curses_panel.curses panel",	/*tp_name*/
     sizeof(PyCursesPanelObject),	/*tp_basicsize*/
     0,			/*tp_itemsize*/
     /* methods */
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index c22b500..5a7a642 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -1511,7 +1511,7 @@
 PyTypeObject PyCursesWindow_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"curses window",	/*tp_name*/
+	"_curses.curses window",	/*tp_name*/
 	sizeof(PyCursesWindowObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/_sre.c b/Modules/_sre.c
index d01f087..b62b17f 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -2403,7 +2403,7 @@
 
 statichere PyTypeObject Pattern_Type = {
     PyObject_HEAD_INIT(NULL)
-    0, "SRE_Pattern",
+    0, "_sre.SRE_Pattern",
     sizeof(PatternObject), sizeof(SRE_CODE),
     (destructor)pattern_dealloc, /*tp_dealloc*/
     0, /*tp_print*/
@@ -2866,7 +2866,7 @@
 
 statichere PyTypeObject Match_Type = {
     PyObject_HEAD_INIT(NULL)
-    0, "SRE_Match",
+    0, "_sre.SRE_Match",
     sizeof(MatchObject), sizeof(int),
     (destructor)match_dealloc, /*tp_dealloc*/
     0, /*tp_print*/
@@ -2974,7 +2974,7 @@
 
 statichere PyTypeObject Scanner_Type = {
     PyObject_HEAD_INIT(NULL)
-    0, "SRE_Scanner",
+    0, "_sre.SRE_Scanner",
     sizeof(ScannerObject), 0,
     (destructor)scanner_dealloc, /*tp_dealloc*/
     0, /*tp_print*/
diff --git a/Modules/almodule.c b/Modules/almodule.c
index e9b2114..31af258 100644
--- a/Modules/almodule.c
+++ b/Modules/almodule.c
@@ -597,7 +597,7 @@
 static PyTypeObject Alctype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"config",			/*tp_name*/
+	"al.config",			/*tp_name*/
 	sizeof(alcobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -1321,7 +1321,7 @@
 static PyTypeObject Alptype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"port",			/*tp_name*/
+	"al.port",			/*tp_name*/
 	sizeof(alpobject),		/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index 11d0723..7c89ce0 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1528,7 +1528,7 @@
 statichere PyTypeObject Arraytype = {
 	PyObject_HEAD_INIT(NULL)
 	0,
-	"array",
+	"array.array",
 	sizeof(arrayobject),
 	0,
 	(destructor)array_dealloc,		/* tp_dealloc */
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index be50208..05d2bf1 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -677,7 +677,7 @@
 static PyTypeObject Bsddbtype = {
 	PyObject_HEAD_INIT(NULL)
 	0,
-	"bsddb",
+	"bsddb.bsddb",
 	sizeof(bsddbobject),
 	0,
 	(destructor)bsddb_dealloc, /*tp_dealloc*/
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index 85fb7cc..425ff10 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -167,7 +167,7 @@
 }
 
 static PyTypeObject PdataType = {
-    PyObject_HEAD_INIT(NULL) 0, "Pdata", sizeof(Pdata), 0,
+    PyObject_HEAD_INIT(NULL) 0, "cPickle.Pdata", sizeof(Pdata), 0,
     (destructor)Pdata_dealloc,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0L,0L,0L,0L, ""
 };
@@ -2479,7 +2479,7 @@
 static PyTypeObject Picklertype = {
     PyObject_HEAD_INIT(NULL)
     0,                            /*ob_size*/
-    "Pickler",                    /*tp_name*/
+    "cPickle.Pickler",            /*tp_name*/
     sizeof(Picklerobject),              /*tp_basicsize*/
     0,
     (destructor)Pickler_dealloc,	/* tp_dealloc */
@@ -4478,7 +4478,7 @@
 static PyTypeObject Unpicklertype = {
     PyObject_HEAD_INIT(NULL)
     0,                            /*ob_size*/
-    "Unpickler",                  /*tp_name*/
+    "cPickle.Unpickler",                  /*tp_name*/
     sizeof(Unpicklerobject),              /*tp_basicsize*/
     0,                            /*tp_itemsize*/
     /* methods */
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 094804c..f85d60a 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -543,7 +543,7 @@
 static PyTypeObject Otype = {
   PyObject_HEAD_INIT(NULL)
   0,	       		/*ob_size*/
-  "StringO",     		/*tp_name*/
+  "cStringIO.StringO",   		/*tp_name*/
   sizeof(Oobject),       	/*tp_basicsize*/
   0,	       		/*tp_itemsize*/
   /* methods */
@@ -677,7 +677,7 @@
 static PyTypeObject Itype = {
   PyObject_HEAD_INIT(NULL)
   0,					/*ob_size*/
-  "StringI",				/*tp_name*/
+  "cStringIO.StringI",			/*tp_name*/
   sizeof(Iobject),			/*tp_basicsize*/
   0,					/*tp_itemsize*/
   /* methods */
diff --git a/Modules/cdmodule.c b/Modules/cdmodule.c
index ee58c5e..f0dd599 100644
--- a/Modules/cdmodule.c
+++ b/Modules/cdmodule.c
@@ -395,7 +395,7 @@
 PyTypeObject CdPlayertype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,			/*ob_size*/
-	"cdplayer",		/*tp_name*/
+	"cd.cdplayer",	/*tp_name*/
 	sizeof(cdplayerobject),	/*tp_size*/
 	0,			/*tp_itemsize*/
 	/* methods */
@@ -692,7 +692,7 @@
 PyTypeObject CdParsertype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,			/*ob_size*/
-	"cdparser",		/*tp_name*/
+	"cd.cdparser",		/*tp_name*/
 	sizeof(cdparserobject),	/*tp_size*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/clmodule.c b/Modules/clmodule.c
index 2ff184c..13011d2 100644
--- a/Modules/clmodule.c
+++ b/Modules/clmodule.c
@@ -658,7 +658,7 @@
 static PyTypeObject Cltype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,			/*ob_size*/
-	"cl",			/*tp_name*/
+	"cl.cl",		/*tp_name*/
 	sizeof(clobject),	/*tp_size*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c
index bd14df6..233487d 100644
--- a/Modules/dbmmodule.c
+++ b/Modules/dbmmodule.c
@@ -287,7 +287,7 @@
 static PyTypeObject Dbmtype = {
 	PyObject_HEAD_INIT(NULL)
 	0,
-	"dbm",
+	"dbm.dbm",
 	sizeof(dbmobject),
 	0,
 	(destructor)dbm_dealloc,  /*tp_dealloc*/
diff --git a/Modules/dlmodule.c b/Modules/dlmodule.c
index 8c77133..18b97d8 100644
--- a/Modules/dlmodule.c
+++ b/Modules/dlmodule.c
@@ -136,7 +136,7 @@
 static PyTypeObject Dltype = {
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"dl",			/*tp_name*/
+	"dl.dl",		/*tp_name*/
 	sizeof(dlobject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index 25037bf..ee1f068 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -378,7 +378,7 @@
 static PyTypeObject GenericObjecttype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"FORMS_object",			/*tp_name*/
+	"fl.FORMS_object",		/*tp_name*/
 	sizeof(genericobject),		/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -1588,7 +1588,7 @@
 static PyTypeObject Formtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"FORMS_form",			/*tp_name*/
+	"fl.FORMS_form",		/*tp_name*/
 	sizeof(formobject),		/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/fmmodule.c b/Modules/fmmodule.c
index 065aed6..a2eb9c6 100644
--- a/Modules/fmmodule.c
+++ b/Modules/fmmodule.c
@@ -154,7 +154,7 @@
 static PyTypeObject Fhtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"font handle",			/*tp_name*/
+	"fm.font handle",		/*tp_name*/
 	sizeof(fhobject),		/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index 505ce92..72d76ea 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -382,7 +382,7 @@
 static PyTypeObject Dbmtype = {
     PyObject_HEAD_INIT(0)
     0,
-    "gdbm",
+    "gdbm.gdbm",
     sizeof(dbmobject),
     0,
     (destructor)dbm_dealloc,            /*tp_dealloc*/
diff --git a/Modules/linuxaudiodev.c b/Modules/linuxaudiodev.c
index e0f144b..dd462ef 100644
--- a/Modules/linuxaudiodev.c
+++ b/Modules/linuxaudiodev.c
@@ -455,7 +455,7 @@
 static PyTypeObject Ladtype = {
     PyObject_HEAD_INIT(&PyType_Type)
     0,				/*ob_size*/
-    "linux_audio_device",	/*tp_name*/
+    "linuxaudiodev.linux_audio_device", /*tp_name*/
     sizeof(lad_t),		/*tp_size*/
     0,				/*tp_itemsize*/
     /* methods */
diff --git a/Modules/md5module.c b/Modules/md5module.c
index beb743f..3ddacf5 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -202,7 +202,7 @@
 statichere PyTypeObject MD5type = {
 	PyObject_HEAD_INIT(NULL)
 	0,			  /*ob_size*/
-	"md5",			  /*tp_name*/
+	"md5.md5",		  /*tp_name*/
 	sizeof(md5object),	  /*tp_size*/
 	0,			  /*tp_itemsize*/
 	/* methods */
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index a4ec2d0..933e972 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -772,7 +772,7 @@
 static PyTypeObject mmap_object_type = {
 	PyObject_HEAD_INIT(0) /* patched in module init */
 	0,					/* ob_size */
-	"mmap",					/* tp_name */
+	"mmap.mmap",				/* tp_name */
 	sizeof(mmap_object),			/* tp_size */
 	0,					/* tp_itemsize */
 	/* methods */
diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c
index bcbd238..04057f1 100644
--- a/Modules/mpzmodule.c
+++ b/Modules/mpzmodule.c
@@ -1591,7 +1591,7 @@
 static PyTypeObject MPZtype = {
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"mpz",			/*tp_name*/
+	"mpz.mpz",		/*tp_name*/
 	sizeof(mpzobject),	/*tp_size*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index 2b6dfa5..ca0531d 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -174,7 +174,7 @@
 PyTypeObject PyST_Type = {
     PyObject_HEAD_INIT(NULL)
     0,
-    "st",                               /* tp_name              */
+    "parser.st",                        /* tp_name              */
     (int) sizeof(PyST_Object),          /* tp_basicsize         */
     0,                                  /* tp_itemsize          */
     (destructor)parser_free,            /* tp_dealloc           */
diff --git a/Modules/pcremodule.c b/Modules/pcremodule.c
index 7a8900d..d08d4ea 100644
--- a/Modules/pcremodule.c
+++ b/Modules/pcremodule.c
@@ -128,7 +128,7 @@
 staticforward PyTypeObject Pcre_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"Pcre",			/*tp_name*/
+	"pcre.Pcre",		/*tp_name*/
 	sizeof(PcreObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index ebda8bf..08b0c46 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -6002,9 +6002,11 @@
 		posix_putenv_garbage = PyDict_New();
 #endif
 
+	stat_result_desc.name = MODNAME ".stat_result";
 	PyStructSequence_InitType(&StatResultType, &stat_result_desc);
 	PyDict_SetItemString(d, "stat_result", (PyObject*) &StatResultType);
 
+	statvfs_result_desc.name = MODNAME ".statvfs_result";
 	PyStructSequence_InitType(&StatVFSResultType, &statvfs_result_desc);
 	PyDict_SetItemString(d, "statvfs_result", (PyObject*) &StatResultType);
 }
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index 90e53b6..3ea022a 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -1380,7 +1380,7 @@
 static PyTypeObject Xmlparsetype = {
 	PyObject_HEAD_INIT(NULL)
 	0,				/*ob_size*/
-	"xmlparser",			/*tp_name*/
+	"pyexpat.xmlparser",		/*tp_name*/
 	sizeof(xmlparseobject) + PyGC_HEAD_SIZE,/*tp_basicsize*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index c0e465a..c3711e6 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -340,7 +340,7 @@
 static PyTypeObject Regextype = {
 	PyObject_HEAD_INIT(NULL)
 	0,				     /*ob_size*/
-	"regex",			     /*tp_name*/
+	"regex.regex",			     /*tp_name*/
 	sizeof(regexobject),		     /*tp_size*/
 	0,				     /*tp_itemsize*/
 	/* methods */
diff --git a/Modules/rotormodule.c b/Modules/rotormodule.c
index cc25924..7c1131c 100644
--- a/Modules/rotormodule.c
+++ b/Modules/rotormodule.c
@@ -578,7 +578,7 @@
 statichere PyTypeObject Rotor_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0,				/*ob_size*/
-	"rotor",			/*tp_name*/
+	"rotor.rotor",			/*tp_name*/
 	sizeof(Rotorobj),		/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 348987b..e5aa6eb 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -567,7 +567,7 @@
 	 * to be portable to Windows without using C++. */
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"poll",			/*tp_name*/
+	"select.poll",		/*tp_name*/
 	sizeof(pollObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/shamodule.c b/Modules/shamodule.c
index b3831b9..f33f907 100644
--- a/Modules/shamodule.c
+++ b/Modules/shamodule.c
@@ -467,7 +467,7 @@
 static PyTypeObject SHAtype = {
     PyObject_HEAD_INIT(NULL)
     0,			/*ob_size*/
-    "SHA",		/*tp_name*/
+    "sha.SHA",		/*tp_name*/
     sizeof(SHAobject),	/*tp_size*/
     0,			/*tp_itemsize*/
     /* methods */
diff --git a/Modules/sunaudiodev.c b/Modules/sunaudiodev.c
index e4c4c9f..e9ffd1f 100644
--- a/Modules/sunaudiodev.c
+++ b/Modules/sunaudiodev.c
@@ -434,7 +434,7 @@
 static PyTypeObject Sadtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"sun_audio_device",		/*tp_name*/
+	"sunaudiodev.sun_audio_device",	/*tp_name*/
 	sizeof(sadobject),		/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -449,7 +449,7 @@
 static PyTypeObject Sadstatustype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"sun_audio_device_status",	/*tp_name*/
+	"sunaudiodev.sun_audio_device_status", /*tp_name*/
 	sizeof(sadstatusobject),	/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/svmodule.c b/Modules/svmodule.c
index ead0ca5..1e254ad 100644
--- a/Modules/svmodule.c
+++ b/Modules/svmodule.c
@@ -294,7 +294,7 @@
 PyTypeObject Capturetype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"capture",			/*tp_name*/
+	"sv.capture",			/*tp_name*/
 	sizeof(captureobject),		/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
@@ -898,7 +898,7 @@
 PyTypeObject Svtype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,			/*ob_size*/
-	"sv",			/*tp_name*/
+	"sv.sv",		/*tp_name*/
 	sizeof(svobject),	/*tp_size*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/threadmodule.c b/Modules/threadmodule.c
index bdc7932..dfc5cbe 100644
--- a/Modules/threadmodule.c
+++ b/Modules/threadmodule.c
@@ -156,7 +156,7 @@
 static PyTypeObject Locktype = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,				/*ob_size*/
-	"lock",				/*tp_name*/
+	"thread.lock",			/*tp_name*/
 	sizeof(lockobject),		/*tp_size*/
 	0,				/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index a9b7a03..bcc53e0 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -223,7 +223,7 @@
 };
 
 static PyStructSequence_Desc struct_time_type_desc = {
-	"struct_time",
+	"time.struct_time",
 	NULL,
 	struct_time_type_fields,
 	9,
diff --git a/Modules/xreadlinesmodule.c b/Modules/xreadlinesmodule.c
index efc3de5..4511f17 100644
--- a/Modules/xreadlinesmodule.c
+++ b/Modules/xreadlinesmodule.c
@@ -135,7 +135,7 @@
 static PyTypeObject XReadlinesObject_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0,
-	"xreadlines",
+	"xreadlines.xreadlines",
 	sizeof(PyXReadlinesObject),
 	0,
 	(destructor)xreadlines_dealloc,		/* tp_dealloc */
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
index 29b874b..0ee9f7a 100644
--- a/Modules/xxmodule.c
+++ b/Modules/xxmodule.c
@@ -98,7 +98,7 @@
 	 * to be portable to Windows without using C++. */
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
-	"Xxo",			/*tp_name*/
+	"xxmodule.Xxo",		/*tp_name*/
 	sizeof(XxoObject),	/*tp_basicsize*/
 	0,			/*tp_itemsize*/
 	/* methods */
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index 2df7f6f..3f2fd80 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -798,7 +798,7 @@
 statichere PyTypeObject Comptype = {
     PyObject_HEAD_INIT(0)
     0,
-    "Compress",
+    "zlib.Compress",
     sizeof(compobject),
     0,
     (destructor)Comp_dealloc,       /*tp_dealloc*/
@@ -815,7 +815,7 @@
 statichere PyTypeObject Decomptype = {
     PyObject_HEAD_INIT(0)
     0,
-    "Decompress",
+    "zlib.Decompress",
     sizeof(compobject),
     0,
     (destructor)Decomp_dealloc,     /*tp_dealloc*/
diff --git a/RISCOS/Modules/riscosmodule.c b/RISCOS/Modules/riscosmodule.c
index c441017..cb4289d 100644
--- a/RISCOS/Modules/riscosmodule.c
+++ b/RISCOS/Modules/riscosmodule.c
@@ -148,7 +148,7 @@
 };
 
 static PyStructSequence_Desc stat_result_desc = {
-	"stat_result",
+	"riscos.stat_result",
 	stat_result__doc__,
 	stat_result_fields,
 	13