diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 262f5a1..b9d5dba 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -630,7 +630,7 @@
 sys_getsizeof(PyObject *self, PyObject *args, PyObject *kwds)
 {
 	PyObject *res = NULL;
-	static PyObject *str__sizeof__, *gc_head_size = NULL;
+	static PyObject *str__sizeof__ = NULL, *gc_head_size = NULL;
 	static char *kwlist[] = {"object", "default", 0};
 	PyObject *o, *dflt = NULL;
 	PyObject *method;
@@ -639,13 +639,6 @@
 					 kwlist, &o, &dflt))
 		return NULL;
 
-	/* Initialize static variable needed by _PyType_Lookup */
-	if (str__sizeof__ == NULL) {
-		str__sizeof__ = PyUnicode_InternFromString("__sizeof__");
-		if (str__sizeof__ == NULL)
-			return NULL;
-	}
-
         /* Initialize static variable for GC head size */
 	if (gc_head_size == NULL) {
 		gc_head_size = PyLong_FromSsize_t(sizeof(PyGC_Head));
@@ -656,14 +649,17 @@
 	/* Make sure the type is initialized. float gets initialized late */
 	if (PyType_Ready(Py_TYPE(o)) < 0)
 		return NULL;
-	
-	method = _PyType_Lookup(Py_TYPE(o), str__sizeof__);
+
+	method = _PyObject_LookupSpecial(o, "__sizeof__",
+					 &str__sizeof__);
 	if (method == NULL)
 		PyErr_Format(PyExc_TypeError,
 			     "Type %.100s doesn't define __sizeof__",
 			     Py_TYPE(o)->tp_name);
-	else
-		res = PyObject_CallFunctionObjArgs(method, o, NULL);
+	else {
+		res = PyObject_CallFunctionObjArgs(method, NULL);
+		Py_DECREF(method);
+	}
 	
 	/* Has a default value been given */
 	if ((res == NULL) && (dflt != NULL) &&
