diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index 867be7d..26cea8c 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -329,12 +329,6 @@
     {NULL,		NULL}   /* sentinel */
 };
 
-static PyObject *
-PyCursesPanel_GetAttr(PyCursesPanelObject *self, char *name)
-{
-    return Py_FindMethod(PyCursesPanel_Methods, (PyObject *)self, name);
-}
-
 /* -------------------------------------------------------*/
 
 PyTypeObject PyCursesPanel_Type = {
@@ -345,14 +339,28 @@
     /* methods */
     (destructor)PyCursesPanel_Dealloc, /*tp_dealloc*/
     0,			/*tp_print*/
-    (getattrfunc)PyCursesPanel_GetAttr, /*tp_getattr*/
-    (setattrfunc)0, /*tp_setattr*/
+    0,			/*tp_getattr*/
+    0,			/*tp_setattr*/
     0,			/*tp_compare*/
     0,			/*tp_repr*/
     0,			/*tp_as_number*/
     0,			/*tp_as_sequence*/
     0,			/*tp_as_mapping*/
     0,			/*tp_hash*/
+    0,			/*tp_call*/
+    0,			/*tp_str*/
+    0,			/*tp_getattro*/
+    0,			/*tp_setattro*/
+    0,			/*tp_as_buffer*/
+    Py_TPFLAGS_DEFAULT, /*tp_flags*/
+    0,			/*tp_doc*/
+    0,			/*tp_traverse*/
+    0,			/*tp_clear*/
+    0,			/*tp_richcompare*/
+    0,			/*tp_weaklistoffset*/
+    0,			/*tp_iter*/
+    0,			/*tp_iternext*/
+    PyCursesPanel_Methods, /*tp_methods*/
 };
 
 /* Wrapper for panel_above(NULL). This function returns the bottom
@@ -470,7 +478,8 @@
     PyObject *m, *d, *v;
 
     /* Initialize object type */
-    Py_TYPE(&PyCursesPanel_Type) = &PyType_Type;
+    if (PyType_Ready(&PyCursesPanel_Type) < 0)
+        return NULL;
 
     import_curses();
 
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 210cb42..4f99da5 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -1650,12 +1650,6 @@
 	{NULL,		    NULL}   /* sentinel */
 };
 
-static PyObject *
-PyCursesWindow_GetAttr(PyCursesWindowObject *self, char *name)
-{
-  return Py_FindMethod(PyCursesWindow_Methods, (PyObject *)self, name);
-}
-
 /* -------------------------------------------------------*/
 
 PyTypeObject PyCursesWindow_Type = {
@@ -1666,14 +1660,28 @@
 	/* methods */
 	(destructor)PyCursesWindow_Dealloc, /*tp_dealloc*/
 	0,			/*tp_print*/
-	(getattrfunc)PyCursesWindow_GetAttr, /*tp_getattr*/
-	(setattrfunc)0, /*tp_setattr*/
+	(getattrfunc)0,		/*tp_getattr*/
+	(setattrfunc)0,		/*tp_setattr*/
 	0,			/*tp_compare*/
 	0,			/*tp_repr*/
 	0,			/*tp_as_number*/
 	0,			/*tp_as_sequence*/
 	0,			/*tp_as_mapping*/
 	0,			/*tp_hash*/
+	0,			/*tp_call*/
+	0,			/*tp_str*/
+	0,			/*tp_getattro*/
+	0,			/*tp_setattro*/
+	0,			/*tp_as_buffer*/
+	Py_TPFLAGS_DEFAULT,	/*tp_flags*/
+	0,			/*tp_doc*/
+	0,			/*tp_traverse*/
+	0,			/*tp_clear*/
+	0,			/*tp_richcompare*/
+	0,			/*tp_weaklistoffset*/
+	0,			/*tp_iter*/
+	0,			/*tp_iternext*/
+	PyCursesWindow_Methods,	/*tp_methods*/
 };
 
 /*********************************************************************
@@ -2792,7 +2800,8 @@
 	static void *PyCurses_API[PyCurses_API_pointers];
 
 	/* Initialize object type */
-	Py_TYPE(&PyCursesWindow_Type) = &PyType_Type;
+	if (PyType_Ready(&PyCursesWindow_Type) < 0)
+		return NULL;
 
 	/* Initialize the C API pointer array */
 	PyCurses_API[0] = (void *)&PyCursesWindow_Type;
diff --git a/Modules/_dbmmodule.c b/Modules/_dbmmodule.c
index 28f4aa7..78eba36 100644
--- a/Modules/_dbmmodule.c
+++ b/Modules/_dbmmodule.c
@@ -324,12 +324,6 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-static PyObject *
-dbm_getattr(dbmobject *dp, char *name)
-{
-	return Py_FindMethod(dbm_methods, (PyObject *)dp, name);
-}
-
 static PyTypeObject Dbmtype = {
 	PyVarObject_HEAD_INIT(NULL, 0)
 	"_dbm.dbm",
@@ -337,7 +331,7 @@
 	0,
 	(destructor)dbm_dealloc,  /*tp_dealloc*/
 	0,			  /*tp_print*/
-	(getattrfunc)dbm_getattr, /*tp_getattr*/
+	0,                        /*tp_getattr*/
 	0,			  /*tp_setattr*/
 	0,			  /*tp_compare*/
 	0,			  /*tp_repr*/
@@ -350,7 +344,15 @@
 	0,                    /*tp_getattro*/
 	0,                    /*tp_setattro*/
 	0,                    /*tp_as_buffer*/
-	Py_TPFLAGS_DEFAULT,   /*tp_xxx4*/
+	Py_TPFLAGS_DEFAULT,   /*tp_flags*/
+	0,		      /*tp_doc*/
+	0,		      /*tp_traverse*/
+	0,		      /*tp_clear*/
+	0,		      /*tp_richcompare*/
+	0,		      /*tp_weaklistoffset*/
+	0,		      /*tp_iter*/
+	0,		      /*tp_iternext*/
+	dbm_methods,          /*tp_methods*/
 };
 
 /* ----------------------------------------------------------------- */
diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c
index b253e20..590ef21 100644
--- a/Modules/_gdbmmodule.c
+++ b/Modules/_gdbmmodule.c
@@ -381,12 +381,6 @@
     {NULL,		NULL}		/* sentinel */
 };
 
-static PyObject *
-dbm_getattr(dbmobject *dp, char *name)
-{
-    return Py_FindMethod(dbm_methods, (PyObject *)dp, name);
-}
-
 static PyTypeObject Dbmtype = {
     PyVarObject_HEAD_INIT(0, 0)
     "_gdbm.gdbm",
@@ -394,7 +388,7 @@
     0,
     (destructor)dbm_dealloc,            /*tp_dealloc*/
     0,                                  /*tp_print*/
-    (getattrfunc)dbm_getattr,           /*tp_getattr*/
+    0,                                  /*tp_getattr*/
     0,                                  /*tp_setattr*/
     0,                                  /*tp_compare*/
     0,                                  /*tp_repr*/
@@ -409,6 +403,13 @@
     0,                                  /*tp_as_buffer*/
     Py_TPFLAGS_DEFAULT,                 /*tp_xxx4*/
     gdbm_object__doc__,                 /*tp_doc*/
+    0,                                  /*tp_traverse*/
+    0,                                  /*tp_clear*/
+    0,                                  /*tp_richcompare*/
+    0,                                  /*tp_weaklistoffset*/
+    0,                                  /*tp_iter*/
+    0,                                  /*tp_iternext*/
+    dbm_methods,                        /*tp_methods*/
 };
 
 /* ----------------------------------------------------------------- */
diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c
index 43215b0..8f66144 100644
--- a/Modules/ossaudiodev.c
+++ b/Modules/ossaudiodev.c
@@ -803,9 +803,14 @@
 };
 
 static PyObject *
-oss_getattr(oss_audio_t *self, char *name)
+oss_getattro(oss_audio_t *self, PyObject *nameobj)
 {
+    char *name = "";
     PyObject * rval = NULL;
+
+    if (PyUnicode_Check(nameobj))
+	name = PyUnicode_AsString(nameobj);
+    
     if (strcmp(name, "closed") == 0) {
         rval = (self->fd == -1) ? Py_True : Py_False;
         Py_INCREF(rval);
@@ -829,17 +834,11 @@
         }
     }
     else {
-        rval = Py_FindMethod(oss_methods, (PyObject *)self, name);
+        rval = PyObject_GenericGetAttr((PyObject *)self, nameobj);
     }
     return rval;
 }
 
-static PyObject *
-oss_mixer_getattr(oss_mixer_t *self, char *name)
-{
-    return Py_FindMethod(oss_mixer_methods, (PyObject *)self, name);
-}
-
 static PyTypeObject OSSAudioType = {
     PyVarObject_HEAD_INIT(&PyType_Type, 0)
     "ossaudiodev.oss_audio_device", /*tp_name*/
@@ -848,10 +847,28 @@
     /* methods */
     (destructor)oss_dealloc,    /*tp_dealloc*/
     0,                          /*tp_print*/
-    (getattrfunc)oss_getattr,   /*tp_getattr*/
+    0,                          /*tp_getattr*/
     0,                          /*tp_setattr*/
     0,                          /*tp_compare*/
     0,                          /*tp_repr*/
+    0,                          /*tp_as_number*/
+    0,                          /*tp_as_sequence*/
+    0,                          /*tp_as_mapping*/
+    0,                          /*tp_hash*/
+    0,                          /*tp_call*/
+    0,                          /*tp_str*/
+    (getattrofunc)oss_getattro, /*tp_getattro*/
+    0,                          /*tp_setattro*/
+    0,                          /*tp_as_buffer*/
+    Py_TPFLAGS_DEFAULT,         /*tp_flags*/
+    0,                          /*tp_doc*/
+    0,                          /*tp_traverse*/
+    0,                          /*tp_clear*/
+    0,                          /*tp_richcompare*/
+    0,                          /*tp_weaklistoffset*/
+    0,                          /*tp_iter*/
+    0,                          /*tp_iternext*/
+    oss_methods,                /*tp_methods*/
 };
 
 static PyTypeObject OSSMixerType = {
@@ -862,10 +879,28 @@
     /* methods */
     (destructor)oss_mixer_dealloc,  /*tp_dealloc*/
     0,                              /*tp_print*/
-    (getattrfunc)oss_mixer_getattr, /*tp_getattr*/
+    0,                              /*tp_getattr*/
     0,                              /*tp_setattr*/
     0,                              /*tp_compare*/
     0,                              /*tp_repr*/
+    0,                              /*tp_as_number*/
+    0,                              /*tp_as_sequence*/
+    0,                              /*tp_as_mapping*/
+    0,                              /*tp_hash*/
+    0,                              /*tp_call*/
+    0,                              /*tp_str*/
+    0,                              /*tp_getattro*/
+    0,                              /*tp_setattro*/
+    0,                              /*tp_as_buffer*/
+    Py_TPFLAGS_DEFAULT,             /*tp_flags*/
+    0,                              /*tp_doc*/
+    0,                              /*tp_traverse*/
+    0,                              /*tp_clear*/
+    0,                              /*tp_richcompare*/
+    0,                              /*tp_weaklistoffset*/
+    0,                              /*tp_iter*/
+    0,                              /*tp_iternext*/
+    oss_mixer_methods,              /*tp_methods*/
 };
 
 
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
index 34d2354..efa97b4 100644
--- a/Modules/xxmodule.c
+++ b/Modules/xxmodule.c
@@ -63,16 +63,16 @@
 };
 
 static PyObject *
-Xxo_getattr(XxoObject *self, char *name)
+Xxo_getattro(XxoObject *self, PyObject *name)
 {
 	if (self->x_attr != NULL) {
-		PyObject *v = PyDict_GetItemString(self->x_attr, name);
+		PyObject *v = PyDict_GetItem(self->x_attr, name);
 		if (v != NULL) {
 			Py_INCREF(v);
 			return v;
 		}
 	}
-	return Py_FindMethod(Xxo_methods, (PyObject *)self, name);
+	return PyObject_GenericGetattr((PyObject *)self, name);
 }
 
 static int
@@ -104,7 +104,7 @@
 	/* methods */
 	(destructor)Xxo_dealloc, /*tp_dealloc*/
 	0,			/*tp_print*/
-	(getattrfunc)Xxo_getattr, /*tp_getattr*/
+	(getattrfunc)0,         /*tp_getattr*/
 	(setattrfunc)Xxo_setattr, /*tp_setattr*/
 	0,			/*tp_compare*/
 	0,			/*tp_repr*/
@@ -114,7 +114,7 @@
 	0,			/*tp_hash*/
         0,                      /*tp_call*/
         0,                      /*tp_str*/
-        0,                      /*tp_getattro*/
+        (getattrofunc)Xxo_getattro, /*tp_getattro*/
         0,                      /*tp_setattro*/
         0,                      /*tp_as_buffer*/
         Py_TPFLAGS_DEFAULT,     /*tp_flags*/
@@ -125,7 +125,7 @@
         0,                      /*tp_weaklistoffset*/
         0,                      /*tp_iter*/
         0,                      /*tp_iternext*/
-        0,                      /*tp_methods*/
+        Xxo_methods,            /*tp_methods*/
         0,                      /*tp_members*/
         0,                      /*tp_getset*/
         0,                      /*tp_base*/
