diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index 021f88b..bcc9530 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -269,12 +269,22 @@
 efficient pickling, and in Boolean contexts, a :class:`timedelta` object is
 considered to be true if and only if it isn't equal to ``timedelta(0)``.
 
+Instance methods:
+
+.. method:: timedelta.total_seconds()
+
+   Return the total number of seconds contained in the duration. Equivalent to
+   ``td.microseconds / 1000000 + td.seconds + td.days * 24 * 3600``.
+
+
 Example usage:
 
     >>> from datetime import timedelta
     >>> year = timedelta(days=365)
     >>> another_year = timedelta(weeks=40, days=84, hours=23,
     ...                          minutes=50, seconds=600)  # adds up to 365 days
+    >>> year.total_seconds()
+    31536000.0
     >>> year == another_year
     True
     >>> ten_years = 10 * year
diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py
index ad36398..1fb3d1b 100644
--- a/Lib/test/test_datetime.py
+++ b/Lib/test/test_datetime.py
@@ -266,6 +266,13 @@
         self.assertEqual(td.seconds, seconds)
         self.assertEqual(td.microseconds, us)
 
+    def test_total_seconds(self):
+        td = timedelta(days=365)
+        self.assertEqual(td.total_seconds(), 31536000.0)
+        for total_seconds in [123456.789012, -123456.789012, 0.123456, 0, 1e6]:
+            td = timedelta(seconds=total_seconds)
+            self.assertEqual(td.total_seconds(), total_seconds)
+
     def test_carries(self):
         t1 = timedelta(days=100,
                        weeks=-7,
diff --git a/Misc/NEWS b/Misc/NEWS
index b9a16ee..1c2f161 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -483,6 +483,10 @@
 Library
 -------
 
+- Issue #5788: `datetime.timedelta` objects get a new `total_seconds()`
+  method returning the total number of seconds in the duration.  Patch by
+  Brian Quinlan.
+
 - Issue #6615: logging: Used weakrefs in internal handler list.
 
 - Issue #1488943: difflib.Differ() doesn't always add hints for tab characters
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index fcbd2e9..1818836 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -2089,6 +2089,14 @@
 }
 
 static PyObject *
+delta_total_seconds(PyObject *self)
+{
+	return PyFloat_FromDouble(GET_TD_MICROSECONDS(self) / 1000000.0 +
+				  GET_TD_SECONDS(self) +
+				  GET_TD_DAYS(self) * 24.0 * 3600.0);
+}
+
+static PyObject *
 delta_reduce(PyDateTime_Delta* self)
 {
 	return Py_BuildValue("ON", Py_TYPE(self), delta_getstate(self));
@@ -2110,7 +2118,10 @@
 };
 
 static PyMethodDef delta_methods[] = {
-	{"__reduce__", (PyCFunction)delta_reduce,     METH_NOARGS,
+	{"total_seconds", (PyCFunction)delta_total_seconds, METH_NOARGS,
+	 PyDoc_STR("Total seconds in the duration.")},
+
+	{"__reduce__", (PyCFunction)delta_reduce, METH_NOARGS,
 	 PyDoc_STR("__reduce__() -> (cls, state)")},
 
 	{NULL,	NULL},
