diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index ace7bab440cc0d6e85fb034a2189e1a086042caa..8a2502ed39a3ea995f051f66f54b1660c048f86e 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -91,6 +91,7 @@
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list
 !  P. Wautelet 11/02/2019: added missing use of MODI_CH_MONITOR_n
 !  P. Wautelet 28/03/2019: use MNHTIME for time measurement variables
+!  P. Wautelet 26/07/2019: bug correction: deallocate of zsea and ztown done too early
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -544,19 +545,16 @@ IF ( LAIRCRAFT_BALLOON ) THEN
   ZTOWN(:,:)= 0.
   CALL MNHGET_SURF_PARAM_n (PSEA=ZSEA(:,:),PTOWN=ZTOWN(:,:))
   DO ISTEPBAL=1,NTIME_AIRCRAFT_BALLOON,INT(XSTEP_AIRCRAFT_BALLOON)
-!
     CALL AIRCRAFT_BALLOON(XSTEP_AIRCRAFT_BALLOON,                &
                       TDTEXP, TDTMOD, TDTCUR, TXDTBAL,           &
                       XXHAT, XYHAT, XZZ, XMAP, XLONORI, XLATORI, &
                       XUT, XVT, XWT, XPABST, XTHT, XRT, XSVT,    &
                       XTKET, XTSRAD, XRHODREF,XCIT,ZSEA)
-  DEALLOCATE (ZSEA,ZTOWN)
-!
-!-----------------------------
 !
     TXDTBAL%TIME=TXDTBAL%TIME + XSTEP_AIRCRAFT_BALLOON
     CALL DATETIME_CORRECTDATE(TXDTBAL)
   ENDDO
+  DEALLOCATE (ZSEA,ZTOWN)
   CALL IO_Header_write(TZDIACFILE)
   CALL WRITE_LFIFMN_FORDIACHRO_n(TZDIACFILE)
   CALL WRITE_AIRCRAFT_BALLOON(TZDIACFILE)