diff --git a/src/OCE/IOM/restart.F90 b/src/OCE/IOM/restart.F90
index 783247cc1a063303d335fc67727cd9716be3da43..2fa3accb59ff6d2bb51d5773b796f75b53d9dbc9 100644
--- a/src/OCE/IOM/restart.F90
+++ b/src/OCE/IOM/restart.F90
@@ -31,6 +31,10 @@ MODULE restart
    USE trdmxl_oce     ! ocean active mixed layer tracers trends variables
    USE diu_bulk       ! ???
 #if defined key_agrif
+#if defined key_si3
+   USE iceistate, ONLY: rsshadj, nn_iceini_file
+   USE sbc_oce, ONLY: ln_ice_embd
+#endif
    USE agrif_oce_interp
 #endif
    !
@@ -420,8 +424,22 @@ CONTAINS
             !
          ENDIF
 #if defined key_agrif
-            ! Set ghosts points from parent 
-            IF (.NOT.Agrif_Root()) CALL Agrif_istate_ssh( Kbb, Kmm, Kaa, .true. )
+         ! Set ghosts points from parent 
+         IF (.NOT.Agrif_Root()) THEN 
+            CALL Agrif_istate_ssh( Kbb, Kmm, Kaa, .true. ) 
+#if defined key_si3
+            IF ( (nn_ice/=2).AND.((Agrif_Parent(nn_ice)==2).AND.                 &
+                              &   (.NOT.(Agrif_Parent(ln_rstart)                 & 
+                              &     .OR.(Agrif_Parent(nn_iceini_file)==2))).AND. &
+                              &   (.NOT.Agrif_Parent(ln_ice_embd))               &
+                              &  )) THEN
+               WHERE( ssmask(:,:) == 1._wp )
+                  ssh(:,:,Kmm) = ssh(:,:,Kmm) - Agrif_Parent(rsshadj)
+                  ssh(:,:,Kbb) = ssh(:,:,Kbb) - Agrif_Parent(rsshadj) 
+               ENDWHERE
+            ENDIF
+#endif
+         ENDIF
 #endif
 #if defined key_RK3
          ssh(:,:,Kmm) = 0._wp                  !* RK3: set Kmm to 0 for AGRIF