diff --git a/design_pattern/src/modele/DPCommand/Invoker.java b/design_pattern/src/modele/DPCommand/Invoker.java
index ba3d8d88a7b21b0a829a99fbe040e720c9ce3a55..576f61c34d4b86e59a86224abb8a9237c4e2bea6 100644
--- a/design_pattern/src/modele/DPCommand/Invoker.java
+++ b/design_pattern/src/modele/DPCommand/Invoker.java
@@ -18,13 +18,13 @@ public class Invoker {
     }
 
     public void executeLastCommand(){
-        commandHistory.get(commandHistory.size()).execute(jeu);
+        commandHistory.get(commandHistory.size()-1).execute(jeu);
     }
 
     public void undoLastCommand() {
         if (!commandHistory.isEmpty()) {
-            Command lastCommand = commandHistory.remove(commandHistory.size() - 1);
-
+            commandHistory.remove(commandHistory.size() - 1);
+            jeu.getEquipe().supprimerLast();
         }
     }
 }
diff --git a/design_pattern/src/modele/DialogueTerminal.java b/design_pattern/src/modele/DialogueTerminal.java
index 1eaa11c358724e8e6500c803eac26446b6641cac..904b8645bf4a38d0cb5930d3f00e8f38e16ebcda 100644
--- a/design_pattern/src/modele/DialogueTerminal.java
+++ b/design_pattern/src/modele/DialogueTerminal.java
@@ -73,11 +73,20 @@ public class DialogueTerminal {
             System.out.println("Vous pouvez encore ajouter maximum : "+
                     (Configuration.getInstance().getTailleMaxEquipe()-tailleActuelle)+" personneges.");
             System.out.println("Choisissez un personnage à ajouter à l'équipe :");
-            System.out.println("0 : Terminé\n1 : Guerrier\n2 : Roi\n3 : Guerisseur\n4 : Sorcier\n");
+            if (tailleActuelle == 0){
+                System.out.println("0 : Terminé\n1 : Guerrier\n2 : Roi\n3 : Guerisseur\n4 : Sorcier\n");
+            }else {
+                System.out.println("0 : Terminé\n1 : Guerrier\n2 : Roi\n3 : Guerisseur\n4 : Sorcier\n" +
+                        "5: Le même que précédemment\n6: Supprimer le dernier personnage ajouté\n");
+            }
             choix = Integer.parseInt(scan.nextLine());
             if (choix != 0){
                 ajouterPersonnage(choix);
-                tailleActuelle++;
+                if (choix == 6){
+                    tailleActuelle--;
+                }else {
+                    tailleActuelle++;
+                }
             }
         }
     }
@@ -115,6 +124,12 @@ public class DialogueTerminal {
             case 4:
                 invoker.executeCommand(new CommandCreerSorcier());
                 break;
+            case 5:
+                invoker.executeLastCommand();
+                break;
+            case 6:
+                invoker.undoLastCommand();
+                break;
         }
     }
 
diff --git a/design_pattern/src/modele/Equipe.java b/design_pattern/src/modele/Equipe.java
index b17337aac5271aef3d75d5228a76292956ca97da..36cec3b39c26b1c31186ea8196e05da26c1ef10a 100644
--- a/design_pattern/src/modele/Equipe.java
+++ b/design_pattern/src/modele/Equipe.java
@@ -34,6 +34,9 @@ public class Equipe implements Groupe{
     public void supprimer(Personnage personnage){
         this.equipe.remove(personnage);
     }
+    public void supprimerLast(){
+        this.equipe.remove(equipe.size()-1);
+    }
 
     public void ajouter(Equipe equipe){
         this.equipe.addAll(equipe.getEquipe());