diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90
index 6c769c64b9113d0122a427f1604a16e3d6f1a249..d3ce73acd1e91e46175fa2eb82168bf1e5f95d68 100644
--- a/src/MNH/read_surf_mnh.f90
+++ b/src/MNH/read_surf_mnh.f90
@@ -1597,11 +1597,11 @@ CHARACTER(LEN=*),       INTENT(OUT) :: HCOMMENT ! comment
 !*      0.2   Declarations of local variables
 !
 CHARACTER(LEN=4), PARAMETER :: YSUFFIX = '_SFX'
-CHARACTER(LEN=MNH_LEN_HREC)           :: YREC
-INTEGER           :: ILUOUT
-TYPE(TFIELDMETADATA)  :: TZFIELD
+
+CHARACTER(LEN=MNH_LEN_HREC) :: YREC
+INTEGER                     :: ILUOUT
+TYPE(TFIELDMETADATA)        :: TZFIELD
 !-------------------------------------------------------------------------------
-YREC=TRIM(HREC)//YSUFFIX
 CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFL0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC))
 !
 ILUOUT = TOUT%NLU
@@ -1629,6 +1629,10 @@ ELSE
   ! Add a suffix to logical variables coming from SURFEX
   ! This is done because some variables can have the same name than MesoNH variables
   ! This suffix has been added in MesoNH 5.6.0
+  YREC = TRIM(HREC) // TRIM(YSUFFIX)
+  IF ( LEN_TRIM(HREC) + LEN_TRIM(YSUFFIX) > MNH_LEN_HREC )                                              &
+    CALL PRINT_MSG( NVERB_WARNING, 'IO', 'READ_SURFL0_MNH', TRIM(TPINFILE%CNAME) //                     &
+                    ': YREC was truncated from ' // TRIM(HREC) // TRIM(YSUFFIX) // ' to ' // TRIM(YREC) )
   CALL PREPARE_METADATA_READ_SURF(YREC,'--',0,TYPELOG,0,'READ_SURFL0_MNH',TZFIELD)
   CALL IO_Field_read(TPINFILE,TZFIELD,OFIELD,KRESP)
 
diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90
index 4caa1378c6b7a40677a5c484f220c76ddcbfee81..00be8c417be88ac70fed35791ec47ff6744df868 100644
--- a/src/MNH/write_surf_mnh.f90
+++ b/src/MNH/write_surf_mnh.f90
@@ -1361,11 +1361,11 @@ CHARACTER(LEN=100),     INTENT(IN)  :: HCOMMENT ! Comment string
 !*      0.2   Declarations of local variables
 !
 CHARACTER(LEN=4), PARAMETER :: YSUFFIX = '_SFX'
+
+CHARACTER(LEN=5)            :: YMSG
 CHARACTER(LEN=MNH_LEN_HREC) :: YREC
-CHARACTER(LEN=5)     :: YMSG
-TYPE(TFIELDMETADATA) :: TZFIELD
+TYPE(TFIELDMETADATA)        :: TZFIELD
 !
-YREC=TRIM(HREC)//YSUFFIX
 CALL PRINT_MSG(NVERB_DEBUG,'IO','WRITE_SURFL0_MNH',TRIM(TFILE_SURFEX%CNAME)//': writing '//TRIM(HREC))
 !
 IF( (CMASK /= 'FULL  ').AND. (HREC=='COVER') ) THEN
@@ -1376,6 +1376,10 @@ ELSE
   ! Add a suffix to logical variables coming from SURFEX
   ! This is done because some variables can have the same name than MesoNH variables
   ! This suffix has been added in MesoNH 5.6.0
+  YREC = TRIM(HREC) // TRIM(YSUFFIX)
+  IF ( LEN_TRIM(HREC) + LEN_TRIM(YSUFFIX) > MNH_LEN_HREC )                                              &
+    CALL PRINT_MSG( NVERB_WARNING, 'IO', 'WRITE_SURFL0_MNH', TRIM(TFILE_SURFEX%CNAME) //                &
+                    ': YREC was truncated from ' // TRIM(HREC) // TRIM(YSUFFIX) // ' to ' // TRIM(YREC) )
   CALL PREPARE_METADATA_WRITE_SURF(YREC,'--',HCOMMENT,0,TYPELOG,0,'WRITE_SURFL0_MNH',TZFIELD)
   CALL IO_Field_write(TFILE_SURFEX,TZFIELD,OFIELD,KRESP)
 END IF