diff --git a/src/OCE/IOM/restart.F90 b/src/OCE/IOM/restart.F90
index 32e23127996f4c17c31f755174c50a24875e7eb4..5e3c1301a064a01648c5308427aa1dde72370a35 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
    !
@@ -435,7 +439,21 @@ CONTAINS
          ENDIF
 #if defined key_agrif
          ! Set ghosts points from parent 
-         IF (.NOT.Agrif_Root()) CALL Agrif_istate_ssh( Kbb, Kmm, Kaa, .true. )
+         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
          !
          ssh(:,:,Kmm) = ssh(:,:,Kbb)              !* set now values from to before ones