diff --git a/src/MNH/aircraft_balloon.f90 b/src/MNH/aircraft_balloon.f90
index 5027747f5b37e84b67044d420c7c0a08ef174b94..3f7e8384f0663de5a2d13fca6f276ec1ca15e7ea 100644
--- a/src/MNH/aircraft_balloon.f90
+++ b/src/MNH/aircraft_balloon.f90
@@ -377,12 +377,12 @@ ISTORE_CUR = TPFLYER%TFLYER_TIME%N_CUR
 
 ! Determine size of data to send
 ! Characters, integers and logicals will be converted to reals. CMODEL and CTYPE will be coded by 1 real
-IPACKSIZE = 16 + LEN(TPFLYER%CTITLE) + ISTORE_CUR * ( 18 + NRR + NSV * 2 + IKU * ( 9 + NRR ) )
+IPACKSIZE = 15 + LEN(TPFLYER%CTITLE) + ISTORE_CUR * ( 18 + NRR + NSV * 2 + IKU * ( 9 + NRR ) )
 IF (  CCLOUD == 'LIMA' ) IPACKSIZE = IPACKSIZE + ISTORE_CUR * IKU * 2
 
 SELECT TYPE ( TPFLYER )
   CLASS IS ( TAIRCRAFTDATA )
-    IPACKSIZE = IPACKSIZE + 5 + TPFLYER%NPOS * 6
+    IPACKSIZE = IPACKSIZE + 6 + TPFLYER%NPOS * 6
 
   CLASS IS ( TBALLOONDATA )
     IPACKSIZE = IPACKSIZE + 15
@@ -463,7 +463,6 @@ END DO
 ZPACK(IPOS) = TPFLYER%XX_CUR; IPOS = IPOS + 1
 ZPACK(IPOS) = TPFLYER%XY_CUR; IPOS = IPOS + 1
 ZPACK(IPOS) = TPFLYER%XZ_CUR; IPOS = IPOS + 1
-ZPACK(IPOS) = TPFLYER%XP_CUR; IPOS = IPOS + 1
 
 ZPACK(IPOS) = TPFLYER%NRANK_CUR; IPOS = IPOS + 1
 
@@ -532,6 +531,7 @@ SELECT TYPE ( TPFLYER )
 
     ZPACK(IPOS) = TPFLYER%NPOS;    IPOS = IPOS + 1
     ZPACK(IPOS) = TPFLYER%NPOSCUR; IPOS = IPOS + 1
+    ZPACK(IPOS) = TPFLYER%XP_CUR; IPOS = IPOS + 1
 
     IPOSAIR = TPFLYER%NPOS
 
@@ -738,7 +738,6 @@ END DO
 TPFLYER%XX_CUR = ZPACK(IPOS); IPOS = IPOS + 1
 TPFLYER%XY_CUR = ZPACK(IPOS); IPOS = IPOS + 1
 TPFLYER%XZ_CUR = ZPACK(IPOS); IPOS = IPOS + 1
-TPFLYER%XP_CUR = ZPACK(IPOS); IPOS = IPOS + 1
 
 TPFLYER%NRANK_CUR = NINT( ZPACK(IPOS) ); IPOS = IPOS + 1
 
@@ -808,6 +807,8 @@ SELECT TYPE ( TPFLYER )
     TPFLYER%NPOS    = NINT( ZPACK(IPOS) ); IPOS = IPOS + 1
     TPFLYER%NPOSCUR = NINT( ZPACK(IPOS) ); IPOS = IPOS + 1
 
+    TPFLYER%XP_CUR  = ZPACK(IPOS);         IPOS = IPOS + 1
+
     IPOSAIR = TPFLYER%NPOS
 
     ALLOCATE( TPFLYER%XPOSLAT(IPOSAIR) )
diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90
index 61e6349733aadbc2fa057d9de6cd011fa4a32dcf..48f7b1e22d81e0dde1c15933169240920de14843 100644
--- a/src/MNH/ini_aircraft_balloon.f90
+++ b/src/MNH/ini_aircraft_balloon.f90
@@ -273,8 +273,6 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL  ' )
         LTIMEDEP   = .TRUE.                       )
       CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%XZ_CUR)
 
-      TPFLYER%XP_CUR   = XUNDEF
-
       TZFIELD = TFIELDMETADATA(                       &
         CMNHNAME   = TRIM(TPFLYER%CTITLE)//'WASCENT', &
         CSTDNAME   = '',                              &
@@ -353,8 +351,6 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL  ' )
         LTIMEDEP   = .TRUE.      )
       CALL IO_Field_read(TZFILE,TZFIELD,TPFLYER%XZ_CUR)
 
-      TPFLYER%XP_CUR   = XUNDEF
-
       TZFIELD = TFIELDMETADATA(               &
         CMNHNAME   = 'WASCENT',               &
         CSTDNAME   = '',                      &
diff --git a/src/MNH/modd_aircraft_balloon.f90 b/src/MNH/modd_aircraft_balloon.f90
index 9383f14516ee881c80bcff3841c48bbd421ef2de..98bbd34ed663dd7037ed61a1122f139608284ae5 100644
--- a/src/MNH/modd_aircraft_balloon.f90
+++ b/src/MNH/modd_aircraft_balloon.f90
@@ -68,7 +68,7 @@ TYPE :: TFLYERDATA
                                      ! 'FIX' : NMODEL used during the run
                                      ! 'MOB' : change od model depends of the
                                      !         balloon/aircraft location
-  INTEGER          :: NMODEL = 0 ! model number for each balloon/aircraft
+  INTEGER          :: NMODEL = 0 ! model number for each balloon/aircraft (may change if CMODEL='MOB')
   INTEGER          :: NID    = 0 ! Identification number
   CHARACTER(LEN=6) :: CTYPE = ''  ! flyer type:
                                   ! 'RADIOS' : radiosounding balloon
@@ -91,7 +91,6 @@ TYPE :: TFLYERDATA
   REAL :: XX_CUR = XNEGUNDEF ! current x
   REAL :: XY_CUR = XNEGUNDEF ! current y
   REAL :: XZ_CUR = XNEGUNDEF ! current z (if 'RADIOS' or 'AIRCRA' and 'ALTDEF' = T)
-  REAL :: XP_CUR = XNEGUNDEF ! current p (if 'AIRCRA' and 'ALTDEF' = F)
   INTEGER :: NRANK_CUR = NFLYER_DEFAULT_RANK ! Rank of the process where the flyer is
   !
   !* data records
@@ -150,6 +149,7 @@ TYPE, EXTENDS( TFLYERDATA ) :: TAIRCRAFTDATA
   !* aircraft altitude type definition
   !
   LOGICAL :: LALTDEF = .FALSE.  ! TRUE == altitude given in pressure
+  REAL    :: XP_CUR = XNEGUNDEF ! current p (only if LALTDEF = F)
 END TYPE TAIRCRAFTDATA
 
 TYPE, EXTENDS( TFLYERDATA ) :: TBALLOONDATA