diff --git a/09_pinning.md b/09_pinning.md
index fad4a2fd9bf0b056b51dc7d5fef669766ab05add..dfccf38d948d1360fa1680fdcd50f2cb1e1ca00e 100644
--- a/09_pinning.md
+++ b/09_pinning.md
@@ -466,3 +466,23 @@ fn main() {
 * La macro `pin!()` nous sauve
 * Si on essaie de refaire l'exemple précent, on a une erreur de compilation
 * Si on veut absolument faire un `Pin` sur la pile, utiliser `pin!()`
+
+## La `Coroutine` et le pinning
+
+* Une souffrance infinie, mais en gros:
+    1. Modofier `poll()` en `poll(self: Pin<&mut self>)`
+    2. Ajouter `Pin<>` autour de Task
+    3. Ajouter un champs `_pin: PhantomPinned` à `Coroutine`
+* Régler les problèmes du compilateur:
+    1. Des `as_mut()` sur les `match` des future
+    2. Ajouter un `this = unsafe { self.get_uncheked_mut() }` dans le `poll()` de `HttpGetFuture`
+* Voilà
+
+
+## En résumé
+
+* On a environ tout pour les `Future` en Rust
+* On a ajouté un moyen d'avoir un état interne à notre implémentation `async/await`
+* On a ajouté un moyen d'enregistrer/charger des structures qui contiennent des références
+* On a vu le concept de `Pin` qui est fondamental pour garantir le modèle mémoire de Rust
+* Bref: actuellement on a un runtime primitif qui peut "tout" faire.