delta_setstate():  This waS no longer referenced, so nukeit.
delta_reduce():  Simplified.
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index 48635e7..029bed3 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -1947,9 +1947,7 @@
 	return NULL;
 }
 
-/* Pickle support.  Quite a maze!  While __getstate__/__setstate__ sufficed
- * in the Python implementation, the C implementation also requires
- * __reduce__, and a __safe_for_unpickling__ attr in the type object.
+/* Pickle support.  This is a plain application of __reduce__.
  */
 static PyObject *
 delta_getstate(PyDateTime_Delta *self)
@@ -1959,44 +1957,10 @@
 				    GET_TD_MICROSECONDS(self));
 }
 
-/* __setstate__ isn't exposed. */
-static PyObject *
-delta_setstate(PyDateTime_Delta *self, PyObject *state)
-{
-	int day;
-	int second;
-	int us;
-
-	if (!PyArg_ParseTuple(state, "iii:__setstate__", &day, &second, &us))
-		return NULL;
-
-	self->hashcode = -1;
-	SET_TD_DAYS(self, day);
-	SET_TD_SECONDS(self, second);
-	SET_TD_MICROSECONDS(self, us);
-
-	Py_INCREF(Py_None);
-	return Py_None;
-}
-
 static PyObject *
 delta_reduce(PyDateTime_Delta* self)
 {
-	PyObject* result = NULL;
-	PyObject* state  = delta_getstate(self);
-
-	if (state != NULL) {
-		/* The funky "()" in the format string creates an empty
-		 * tuple as the 2nd component of the result 3-tuple.
-		 */
-		result = Py_BuildValue("O(iii)",
-				       self->ob_type,
-				       self->days,
-				       self->seconds,
-				       self->microseconds);
-		Py_DECREF(state);
-	}
-	return result;
+	return Py_BuildValue("ON", self->ob_type, delta_getstate(self));
 }
 
 #define OFFSET(field)  offsetof(PyDateTime_Delta, field)