asyncio: another Future example using add_done_callback()
diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst
index 360acc9..8dede87 100644
--- a/Doc/library/asyncio-task.rst
+++ b/Doc/library/asyncio-task.rst
@@ -409,8 +409,8 @@
 * ``wait_task()`` stops the event loop when ``print_sum()`` is done.
 
 
-Example: Future and get result
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Example: Future with run_until_complete()
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Example combining a :class:`Future` and a :ref:`coroutine <coroutine>`::
 
@@ -432,3 +432,35 @@
 coroutine is responsible of the computation. The event loop is notified when
 the future is done (see the :meth:`Future.set_result` method).
 
+Example: Future with run_until_complete()
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The previous example can be written differently using the
+:meth:`Future.add_done_callback` method::
+
+    import asyncio
+
+    @asyncio.coroutine
+    def slow_operation(future):
+        yield from asyncio.sleep(1)
+        future.set_result('Future in done!')
+
+    def exit(future):
+        print(future.result())
+        loop.stop()
+
+    loop = asyncio.get_event_loop()
+    future = asyncio.Future()
+    asyncio.Task(slow_operation(future))
+    future.add_done_callback(exit)
+    loop.run_forever()
+    loop.close()
+
+The future is now responsible to display the result and stop the loop using the
+``exit()`` callback.
+
+.. note::
+   The coroutine is only executed when the event loop starts running, so it is
+   possible to add a "done callback" to the future after creating the task
+   scheduling the coroutine.
+