diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90
index 933c9c319d4dae5be36f3f6ec2a4c1f15e5cfff8..75ea925f49c112562943bd7905992e9f417c8fd5 100644
--- a/src/MNH/aircraft_balloon_evol.f90
+++ b/src/MNH/aircraft_balloon_evol.f90
@@ -304,7 +304,8 @@ SELECT TYPE ( TPFLYER )
     ! Initialize model number (and rank)
     ! This is not done in initialisation phase because some data is not yet available at this early stage
     ! (XXHAT_ll of all models are needed by FIND_PROCESS_AND_MODEL_FROM_XY_POS)
-    IF ( .NOT. TPFLYER%LFLY .AND. .NOT. TPFLYER%LCRASH .AND. TPFLYER%NRANK_CUR < 0 ) THEN
+    IF ( .NOT. TPFLYER%LPOSITION_INIT ) THEN
+      TPFLYER%LPOSITION_INIT = .TRUE.
       ! Get rank of the process where the balloon is and the model number
       CALL FLYER_GET_RANK_MODEL_ISCRASHED( TPFLYER, PX = TPFLYER%XXLAUNCH, PY = TPFLYER%XYLAUNCH )
       IF ( TPFLYER%LCRASH ) THEN
diff --git a/src/MNH/modd_aircraft_balloon.f90 b/src/MNH/modd_aircraft_balloon.f90
index 0ed8002ec12e8e9317385cd78f8f10d1e77ec537..e59cdcd0ec990eb20511c230404037a72fe92015 100644
--- a/src/MNH/modd_aircraft_balloon.f90
+++ b/src/MNH/modd_aircraft_balloon.f90
@@ -152,6 +152,7 @@ TYPE, EXTENDS( TFLYERDATA ) :: TAIRCRAFTDATA
 END TYPE TAIRCRAFTDATA
 
 TYPE, EXTENDS( TFLYERDATA ) :: TBALLOONDATA
+  LOGICAL :: LPOSITION_INIT = .FALSE. ! True if initial position has been computed
   !
   !* balloon dynamical characteristics
   !