diff --git a/src/Parafoil/StateMachines/WingController/WingController.cpp b/src/Parafoil/StateMachines/WingController/WingController.cpp
index 0930dcc744406a938d6de9e3ed7c799d70bffa0e..61ec4b6ad6ef52e7915cd377f5473931b875f0e0 100644
--- a/src/Parafoil/StateMachines/WingController/WingController.cpp
+++ b/src/Parafoil/StateMachines/WingController/WingController.cpp
@@ -175,11 +175,6 @@ State WingController::FlyingDeployment(const Boardcore::Event& event)
         }
         case DPL_FLARE_START:
         {
-            if (pumpCount == 0)
-            {
-                EventBroker::getInstance().post(DPL_DONE, TOPIC_DPL);
-                return HANDLED;
-            }
             pumpCount--;
 
             auto pump = Wing::Deployment::PUMPS.at(pumpCount);
@@ -194,6 +189,13 @@ State WingController::FlyingDeployment(const Boardcore::Event& event)
             auto pump = Wing::Deployment::PUMPS.at(pumpCount);
 
             resetWing();
+
+            if (pumpCount - 1 == 0)
+            {
+                EventBroker::getInstance().post(DPL_DONE, TOPIC_DPL);
+                return HANDLED;
+            }
+
             flareTimeoutEventId = EventBroker::getInstance().postDelayed(
                 DPL_FLARE_START, TOPIC_DPL,
                 Millisecond{pump.resetTime}.value());