diff --git a/main.c b/main.c
index 8242eb0..289aa91 100644
--- a/main.c
+++ b/main.c
@@ -208,6 +208,7 @@ int main()
     int *serpent = (int *)malloc(longueur_serpent * sizeof(int));
     int *pastilles = (int *)malloc(longueur_pastilles * sizeof(int));
     int direction = 0;
+    int direction_davant = 0;
 
     if(serpent == NULL) {
         fprintf(stderr, "Erreur d'allocation de mémoire.\n");
@@ -233,16 +234,33 @@ int main()
             {
             case XK_Up:
                 direction = 1;
+                if(direction_davant == 3 && direction == 1)
+                {
+                    direction = direction_davant;
+                }
                 break;
             case XK_Down:
                 direction = 3;
+                if(direction_davant == 1 && direction == 3)
+                {
+                    direction = direction_davant;
+                }
                 break;
             case XK_Left:
                 direction = 0;
+                if(direction_davant == 2 && direction == 0)
+                {
+                    direction = direction_davant;
+                }
                 break;
             case XK_Right:
                 direction = 2;
+                if(direction_davant == 0 && direction == 2)
+                {
+                    direction = direction_davant;
+                }
                 break;
+                
             case XK_space:
                 if(pause == 0)
                 { 
@@ -271,8 +289,10 @@ int main()
                         m++;
                         n=0;
                     }
+
                 Affichertimeretscore(m,n,score);
                 suivant=Microsecondes()+delta;
+                direction_davant = direction;
                 DeplacementSerpent(direction,serpent,longueur_serpent);
                
 			
diff --git a/prog b/prog
index 6c81fe9..c91a7e7 100755
Binary files a/prog and b/prog differ