diff --git a/slides/cours_15.md b/slides/cours_15.md
index d463f69caa958433c0397715c90aac9ad9668e65..0cfc64d1aa2ac6ccfc708f19f6a4f889c3d418cc 100644
--- a/slides/cours_15.md
+++ b/slides/cours_15.md
@@ -790,7 +790,7 @@ typedef struct _node {
 typedef node* tree_t;
 tree_t search(key_t key, tree_t tree) {
     tree_t current = tree;
-    while (NULL != current && !success) {
+    while (NULL != current) {
         if (current->key > X) {
             current = current->gauche;
         } else if (current->key < X){
@@ -877,13 +877,18 @@ int arbre_size(tree_t tree) {
 ```
 arbre position(arbre, clé)
     si est_non_vide(arbre)
+        si clé < clé(arbre)
+            suivant = gauche(arbre)
+        sinon
+            suivant = droite(arbre)
         tant que clé(arbre) != clé && est_non_vide(suivant)
+            arbre = suivant
             si clé < clé(arbre)
                 suivant = gauche(arbre)
             sinon
                 suivant = droite(arbre)
-            arbre = suivant
-    returne arbre
+            
+    retourne arbre
 ```
 
 # Pseudocode d'insertion (2/2)
@@ -917,10 +922,12 @@ ajout(arbre, clé)
 tree_t position(tree_t tree, key_t key) {
     tree_t current = tree;
     if (NULL != current) {
+        tree_t subtree = key > current->key ? current->right :
+        current->left;
         while (key != current->key && NULL != subtree) {
+            current = subtree;
             subtree = key > current->key ? current->right :
             current->left;
-            current = subtree;
         }
     }
     return current;