diff --git a/src/phase2.ml b/src/phase2.ml
index e5e7f1e51f6fb7a0e3110e68cb7969916e34e3e9..99f9e2e55209edfe2c44c44dc7338d58d2631ee4 100644
--- a/src/phase2.ml
+++ b/src/phase2.ml
@@ -103,7 +103,7 @@ let capacite c g =
   let rec liste_capacite m = match m with
     | [] -> []
     | elt::[] -> []
-    | e1::(e2::nl) -> (Arreteliste.find e2 (Graphe.find e1 g))::(liste_capacite nl)
+    | e1::(e2::nl) -> (Arreteliste.find e2 (Graphe.find e1 g))::(liste_capacite (e2::nl))
   in
   let liste = liste_capacite c
   in
@@ -111,5 +111,16 @@ let capacite c g =
   in
   List.map f c
 
-(* [graphe_capacite_residuelles c n g] donne le graphe des capacité résiduelles aprèes avoir retirer des arretes du chemin c le nombre n *)
-let rec graphe_capacites_residuelles c n g = 
\ No newline at end of file
+(* [graphe_capacite_residuelles c n g] graphe des capacité résiduelles de g aprèes avoir retirer des arretes du chemin c le nombre n *)
+let rec graphe_capacites_residuelles c n g = match c with 
+  | [] -> g 
+  | e::[] -> g
+  | e1::e2::l -> 
+    let s = Graphe.find e1 g
+    in
+    let t = Arreteliste.find e2 s
+    in
+    let new_e1 = Arreteliste.add e2 (t-n) (Arreteliste.remove e2 s)
+    in
+    let new_g = Graphe.add e1 new_e1 (Graphe.remove e1 g)
+    in graphe_capacites_residuelles (e2::l) n new_g
\ No newline at end of file