diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
index e717d201713c3225b1a00df4738cfe048ce12d07..94485e3f10a5baca8caa1ac373b54389b31765d9 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
@@ -141,6 +141,11 @@ DO IMI = 1, NMODEL
   CALL FIND_REMOVE_DUPLICATES(IBAK_NUMB,IBAK_STEP)
   CALL FIND_REMOVE_DUPLICATES(IOUT_NUMB,IOUT_STEP)
   !
+  !* Find and remove out of time range entries
+  !
+  CALL FIND_REMOVE_OUTOFTIMERANGE(IBAK_NUMB,IBAK_STEP)
+  CALL FIND_REMOVE_OUTOFTIMERANGE(IOUT_NUMB,IOUT_STEP)
+  !
   !* Sort entries
   !
   CALL SORT_ENTRIES(IBAK_NUMB,IBAK_STEP)
@@ -154,6 +159,8 @@ DO IMI = 1, NMODEL
       IBAK_NUMB = IBAK_NUMB + 1
     END IF
   END DO
+  IF (IBAK_NUMB==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_PREPARE_BAKOUT_STRUCT','no (valid) backup time')
+  !
   IOUT_NUMB = 0
   DO JOUT = 1,SIZE(IOUT_STEP)
     IF (IOUT_STEP(JOUT) >= 0) THEN
@@ -426,6 +433,21 @@ SUBROUTINE FIND_REMOVE_DUPLICATES(KNUMB,KSTEPS)
 END SUBROUTINE FIND_REMOVE_DUPLICATES
 !
 !#########################################################################
+SUBROUTINE FIND_REMOVE_OUTOFTIMERANGE(KNUMB,KSTEPS)
+!#########################################################################
+  !
+  INTEGER,              INTENT(IN)    :: KNUMB
+  INTEGER,DIMENSION(:), INTENT(INOUT) :: KSTEPS
+  !
+  DO JOUT = 1,KNUMB
+    IF ( KSTEPS(JOUT) < 1 .OR. KSTEPS(JOUT) > ISTEP_MAX ) THEN
+      CALL PRINT_MSG(NVERB_WARNING,'IO','FIND_REMOVE_OUTOFTIMERANGE','found backup/output step outside of time range')
+      KSTEPS(JOUT) = NNEGUNDEF
+    END IF
+  END DO
+END SUBROUTINE FIND_REMOVE_OUTOFTIMERANGE
+!
+!#########################################################################
 SUBROUTINE SORT_ENTRIES(KNUMB,KSTEPS)
 !#########################################################################
   !
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 09005b315688b04b245a5fc974554e48b49fd66b..583b69f6cab3e443f39ddc9e87b88715d9b72ce8 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -540,7 +540,11 @@ IF (KMI == 1) THEN
     READ(UNIT=ILUSEG,NML=NAM_BACKUP)
   ELSE
     CALL POSNAM(ILUSEG,'NAM_FMOUT',GFOUND)
-    IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT')
+    IF (GFOUND) THEN
+      CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT')
+    ELSE
+      CALL PRINT_MSG(NVERB_ERROR,'IO','READ_EXSEG_n','namelist NAM_BACKUP not found')
+    END IF
   END IF
   CALL POSNAM(ILUSEG,'NAM_OUTPUT',GFOUND,ILUOUT)
   IF (GFOUND) THEN