diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index ce47bd0..ef1bca2 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -361,6 +361,15 @@
       ``d.appendleft(d.pop())``.
 
 
+   Deque objects also provide one read-only attribute:
+
+   .. attribute:: maxlen
+
+      Maximum size of a deque or *None* if unbounded.
+
+      .. versionadded:: 2.7
+
+
 In addition to the above, deques support iteration, pickling, ``len(d)``,
 ``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing with
 the :keyword:`in` operator, and subscript references such as ``d[-1]``.  Indexed
diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py
index a9e010e..fab5a7c 100644
--- a/Lib/test/test_deque.py
+++ b/Lib/test/test_deque.py
@@ -105,6 +105,16 @@
         d.extendleft(it)
         self.assertEqual(list(it), [])
 
+    def test_maxlen_attribute(self):
+        self.assertEqual(deque().maxlen, None)
+        self.assertEqual(deque('abc').maxlen, None)
+        self.assertEqual(deque('abc', maxlen=4).maxlen, 4)
+        self.assertEqual(deque('abc', maxlen=2).maxlen, 2)
+        self.assertEqual(deque('abc', maxlen=0).maxlen, 0)
+        with self.assertRaises(AttributeError):
+            d = deque('abc')
+            d.maxlen = 10
+
     def test_comparisons(self):
         d = deque('xabc'); d.popleft()
         for e in [d, deque('abc'), deque('ab'), deque(), list(d)]:
diff --git a/Misc/NEWS b/Misc/NEWS
index ad28735..b870bcf 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -195,6 +195,8 @@
 Library
 -------
 
+- collections.deque() objects now have a read-only attribute called maxlen.
+
 - Issue #2638: Show a window constructed with tkSimpleDialog.Dialog only after
   it is has been populated and properly configured in order to prevent
   window flashing.
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 8d27b88..f8d656c 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -812,6 +812,20 @@
 	return 0;
 }
 
+static PyObject *
+deque_get_maxlen(dequeobject *deque)
+{
+	if (deque->maxlen == -1)
+		Py_RETURN_NONE;
+	return PyLong_FromSsize_t(deque->maxlen);
+}
+
+static PyGetSetDef deque_getset[] = {
+	{"maxlen", (getter)deque_get_maxlen, (setter)NULL,
+	 "maximum size of a deque or None if unbounded"},
+	{0}
+};
+
 static PySequenceMethods deque_as_sequence = {
 	(lenfunc)deque_len,		/* sq_length */
 	0,				/* sq_concat */
@@ -893,7 +907,7 @@
 	0,				/* tp_iternext */
 	deque_methods,			/* tp_methods */
 	0,				/* tp_members */
-	0,				/* tp_getset */
+	deque_getset,	/* tp_getset */
 	0,				/* tp_base */
 	0,				/* tp_dict */
 	0,				/* tp_descr_get */
