diff --git a/src/deplacements.c b/src/deplacements.c
index a7a9580fe0fc0755a7e666770da05d20b5eabb55..8e1fbe557aed07a84e8b7ac4a990d3e54feda51a 100644
--- a/src/deplacements.c
+++ b/src/deplacements.c
@@ -117,7 +117,9 @@ boolean deplacement_possible(Personnage* perso, Case* c, Carte_Jeu* carte){
     for(x=0;x<LARG_MAX_CARTE;x++){
         for(y=0;y<HAUT_MAX_CARTE;y++){
             if(deplacement_unitaire_possible(depart,&carte->Tab_Cases[x][y])==vrai){
-                return deplacement_possible_recursif(&carte->Tab_Cases[x][y],c, carte,pts_mvt-carte->Tab_Cases[x][y].terrain->PD_requis);
+                if(deplacement_possible_recursif(&carte->Tab_Cases[x][y],c, carte,pts_mvt-carte->Tab_Cases[x][y].terrain->PD_requis)==vrai){
+                    return vrai;
+                }
             }
         }
     }
@@ -138,7 +140,9 @@ boolean deplacement_possible_recursif(Case* dep, Case* dest, Carte_Jeu* carte, i
     for(x=0;x<LARG_MAX_CARTE;x++){
             for(y=0;y<HAUT_MAX_CARTE;y++){
                 if(deplacement_unitaire_possible(dep,&carte->Tab_Cases[x][y])==vrai){
-                    return deplacement_possible_recursif(&carte->Tab_Cases[x][y],dest, carte,pts_restants-1);
+                    if(deplacement_possible_recursif(&carte->Tab_Cases[x][y],dest, carte,pts_restants-carte->Tab_Cases[x][y].terrain->PD_requis)==vrai){
+                        return vrai;
+                    }
                 }
             }
     }