diff --git a/src/main/java/fr/nancy/iut/CalcEngine.java b/src/main/java/fr/nancy/iut/CalcEngine.java
index 14bc40d97f4b0cccda0346dbf1f976bd825c6209..3ab5436aaca381700879eb1f76cc38868ea5a85d 100755
--- a/src/main/java/fr/nancy/iut/CalcEngine.java
+++ b/src/main/java/fr/nancy/iut/CalcEngine.java
@@ -72,10 +72,11 @@ public class CalcEngine
         if (previousOperator == '+') {
             displayValue = leftOperand + displayValue;
         }
-        else {
+        else if (previousOperator == '-') {
             displayValue = leftOperand - displayValue;
         }
         leftOperand = 0;
+        previousOperator = '=';
     }
 
     /**
diff --git a/src/test/java/fr/nancy/iut/CalcEngineTest.java b/src/test/java/fr/nancy/iut/CalcEngineTest.java
index f9138b61bedf9454a5e74b5df5f24c0af00ff144..1b4053e6d2be5c5722c51e638af5af01ec07c0fc 100644
--- a/src/test/java/fr/nancy/iut/CalcEngineTest.java
+++ b/src/test/java/fr/nancy/iut/CalcEngineTest.java
@@ -25,7 +25,7 @@ public class CalcEngineTest {
     }
 
     @Test
-    @DisplayName("TTesting the addition operation : 3 + 4 = 7")
+    @DisplayName("Testing the addition operation : 3 + 4 = 7")
     void testPlus() {
         // Make sure the engine is in a valid starting state.
         engine.clear();
@@ -38,4 +38,30 @@ public class CalcEngineTest {
         assertEquals(7, engine.getDisplayValue());
     }
 
+    @Test
+    @DisplayName("Testing the operation : 1 + 2 + 3 =  - 2 = - 1 = 3 ")
+    void testComplexFormula() {
+        // Make sure the engine is in a valid starting state.
+        engine.clear();
+        // Simulate the key presses: 1 + 2 + 3 =
+        engine.numberPressed(1);
+        engine.plus();
+        engine.numberPressed(2);
+        engine.plus();
+        engine.numberPressed(3);
+        engine.equals();
+        // Intermediate result : 6
+        assertEquals(6, engine.getDisplayValue());
+        engine.minus();
+        engine.numberPressed(2);
+        engine.equals();
+        // Intermediate result : 4 (6 _ 2)
+        assertEquals(4, engine.getDisplayValue());
+        engine.minus();
+        engine.numberPressed(1);
+        engine.equals();
+        // Final result : 3 (4 - 1).
+        assertEquals(3, engine.getDisplayValue());
+    }
+
 }