Fix leak found by Eric Huss.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index ee6e5d9..115e1e6 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3954,7 +3954,12 @@
 	func = PyCFunction_New(tp_new_methoddef, (PyObject *)type);
 	if (func == NULL)
 		return -1;
-	return PyDict_SetItemString(type->tp_dict, "__new__", func);
+	if(PyDict_SetItemString(type->tp_dict, "__new__", func)) {
+		Py_DECREF(func);
+		return -1;
+	}
+	Py_DECREF(func);
+	return 0;
 }
 
 /* Slot wrappers that call the corresponding __foo__ slot.  See comments