diff --git a/src/fr/monlouyan/bakefile/CommandExecutor.java b/src/fr/monlouyan/bakefile/CommandExecutor.java
index 065ea24..6a7e07d 100644
--- a/src/fr/monlouyan/bakefile/CommandExecutor.java
+++ b/src/fr/monlouyan/bakefile/CommandExecutor.java
@@ -68,7 +68,7 @@ public class CommandExecutor {
         // 2. Aucune règle n'avait besoin d'être mise à jour
         // 3. On n'a PAS de commandes à exécuter
         else if (rule.getName().equals(BakefileParser.getFirstTarget()) && !needsUpdate && rule.getCommands().isEmpty()) {
-            System.out.println("bake: Nothing to be done for '" + rule.getName() + "'.");
+            System.out.println("bake: Nothing to be done for `" + rule.getName() + "'.");
         }
     }
 }
\ No newline at end of file
diff --git a/src/fr/monlouyan/bakefile/Rule.java b/src/fr/monlouyan/bakefile/Rule.java
index 4831799..72c2e22 100644
--- a/src/fr/monlouyan/bakefile/Rule.java
+++ b/src/fr/monlouyan/bakefile/Rule.java
@@ -23,82 +23,79 @@ public class Rule {
     public boolean isEmpty() { return dependencies.isEmpty() && commands.isEmpty(); }
 
     public boolean needsUpdate() {
-        if (BakeCLI.isDebug()){
-            System.out.println("Debug : Checking if rule " + name + " needs update");
-        }
-
-        // Les règles phony sont toujours mises à jour
-        if (isPhony) {
-            if (BakeCLI.isDebug()) {
-                System.out.println("Debug : Rule " + name + " is phony, always needs update");
-            }
-            return true;
-        }
-
-        // Si la règle n'a pas de commandes, on vérifie seulement si une dépendance doit être mise à jour
-        if (commands.isEmpty()) {
-            for (String dependency : dependencies) {
-                File depFile = new File(dependency);
-                if (!depFile.exists() && !dependency.isEmpty() && !BakeEngine.hasRule(dependency)) {
-                    System.out.println("bake: *** No rule to make target `" + dependency + "', needed by '" + name + "'.  Stop.");
-                    System.exit(1);
-                }
-                Rule depRule = BakeEngine.getRule(dependency);
-                if (depRule != null && depRule.needsUpdate()) {
-                    if (BakeCLI.isDebug()) {
-                        System.out.println("Debug : Dependency rule " + dependency + " needs update");
-                    }
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        // Pour les règles avec des commandes, on vérifie aussi les timestamps
-        File targetFile = new File(name);
-        if (BakeCLI.isDebug()){
-            System.out.println("Debug : Checking if target file " + name + " exist and is up to date");
-        }
-
-        long targetTimestamp = targetFile.exists() ? TimestampManager.getTimestamp(targetFile) : 0;
-        
-        if (BakeCLI.isDebug()) {
-            System.out.println("Debug : Target file '" + name + "' last modified at " + TimestampManager.formatTimestamp(targetTimestamp));
-        }
-    
-        for (String dependency : dependencies) {
-            File depFile = new File(dependency);
-            long depTimestamp = depFile.exists() ? TimestampManager.getTimestamp(depFile) : 0;
-
-            if (BakeCLI.isDebug()) {
-                System.out.println("Debug : Dependency '" + dependency + "' last modified at " + TimestampManager.formatTimestamp(depTimestamp));
-            }
-
-            // Vérifier si une règle existe pour cette dépendance
-            boolean hasRule = BakeEngine.hasRule(dependency);
-
-            if (!depFile.exists() && !dependency.isEmpty() && !hasRule) {
-                System.out.println("bake: *** No rule to make target `" + dependency + "', needed by '" + name + "'.  Stop.");
-                System.exit(1);
-            }
-
-            // Si la dépendance est une règle et qu'elle a besoin d'être mise à jour
-            Rule depRule = BakeEngine.getRule(dependency);
-            if (depRule != null && depRule.needsUpdate()) {
-                if (BakeCLI.isDebug()) {
-                    System.out.println("Debug : Dependency rule " + dependency + " needs update");
-                }
-                return true;
-            }
-
-            // Vérifier les timestamps seulement si le fichier existe
-            if (depFile.exists() && TimestampManager.getTimestamp(depFile) > targetTimestamp) {
-                if (BakeCLI.isDebug()) {
-                    System.out.println("Debug : Dependency " + dependency + " is newer than target file " + name + ", needs update");
-                }
-                return true;
-            }
-        }
-        return false;
-    }
+		if (BakeCLI.isDebug()){
+			System.out.println("Debug : Checking if rule " + name + " needs update");
+		}
+	
+		// Les règles phony sont toujours mises à jour
+		if (isPhony) {
+			if (BakeCLI.isDebug()) {
+				System.out.println("Debug : Rule " + name + " is phony, always needs update");
+			}
+			return true;
+		}
+	
+		// Vérifier d'abord toutes les dépendances avant d'exécuter quoi que ce soit
+		for (String dependency : dependencies) {
+			File depFile = new File(dependency);
+			boolean hasRule = BakeEngine.hasRule(dependency);
+			if (!depFile.exists() && !dependency.isEmpty() && !hasRule) {
+				System.out.println("bake: *** No rule to make target `" + dependency + "', needed by `" + name + "'.  Stop.");
+				System.exit(1);
+			}
+		}
+	
+		// Si la règle n'a pas de commandes, on vérifie seulement si une dépendance doit être mise à jour
+		if (commands.isEmpty()) {
+			for (String dependency : dependencies) {
+				Rule depRule = BakeEngine.getRule(dependency);
+				if (depRule != null && depRule.needsUpdate()) {
+					if (BakeCLI.isDebug()) {
+						System.out.println("Debug : Dependency rule " + dependency + " needs update");
+					}
+					return true;
+				}
+			}
+			return false;
+		}
+	
+		// Pour les règles avec des commandes, on vérifie aussi les timestamps
+		File targetFile = new File(name);
+		if (BakeCLI.isDebug()){
+			System.out.println("Debug : Checking if target file " + name + " exist and is up to date");
+		}
+	
+		long targetTimestamp = targetFile.exists() ? TimestampManager.getTimestamp(targetFile) : 0;
+		
+		if (BakeCLI.isDebug()) {
+			System.out.println("Debug : Target file '" + name + "' last modified at " + TimestampManager.formatTimestamp(targetTimestamp));
+		}
+	
+		for (String dependency : dependencies) {
+			File depFile = new File(dependency);
+			long depTimestamp = depFile.exists() ? TimestampManager.getTimestamp(depFile) : 0;
+	
+			if (BakeCLI.isDebug()) {
+				System.out.println("Debug : Dependency '" + dependency + "' last modified at " + TimestampManager.formatTimestamp(depTimestamp));
+			}
+	
+			// Si la dépendance est une règle et qu'elle a besoin d'être mise à jour
+			Rule depRule = BakeEngine.getRule(dependency);
+			if (depRule != null && depRule.needsUpdate()) {
+				if (BakeCLI.isDebug()) {
+					System.out.println("Debug : Dependency rule " + dependency + " needs update");
+				}
+				return true;
+			}
+	
+			// Vérifier les timestamps seulement si le fichier existe
+			if (depFile.exists() && TimestampManager.getTimestamp(depFile) > targetTimestamp) {
+				if (BakeCLI.isDebug()) {
+					System.out.println("Debug : Dependency " + dependency + " is newer than target file " + name + ", needs update");
+				}
+				return true;
+			}
+		}
+		return false;
+	}
 }
\ No newline at end of file