diff --git a/Tp09/merge_sort.py b/Tp09/merge_sort.py
index 5d4d79d6bc50989b31d455964bd863de5932bf32..b3aa8c616dde302e2285d5f302ea139650051798 100755
--- a/Tp09/merge_sort.py
+++ b/Tp09/merge_sort.py
@@ -252,7 +252,13 @@ def mergesort(l: ApLst, comp: Callable[[T, T], int]=compare) -> ApLst:
     $$$ is_sorted(l1)
     True
     """
-    ...
+    if l.is_empty() or l.tail().is_empty():
+        return l
+    else:
+        l1, l2 = split(l)
+        sorted_l1 = mergesort(l1, comp)
+        sorted_l2 = mergesort(l2, comp)
+        return merge(sorted_l1, sorted_l2, comp)
 
 
 if (__name__ == '__main__'):