diff --git a/src/SURFEX/read_sson.F90 b/src/SURFEX/read_sson.F90
index 60d652ba9dffec98134ca3cc9044ed42bff2107e..cffa00c8127dcaa2a981f8ebcd5d8fc253cc47cc 100644
--- a/src/SURFEX/read_sson.F90
+++ b/src/SURFEX/read_sson.F90
@@ -127,6 +127,7 @@ YRECFM='SSO_ANIS'
  CALL READ_SURF(HPROGRAM,YRECFM,USS%XSSO_ANIS(:),IRESP)
 WHERE (PSEA(:) == 1.) USS%XSSO_ANIS(:) = XUNDEF
 !
+IF (ASSOCIATED(USS%XSSO_DIR)) DEALLOCATE(USS%XSSO_DIR) ! For MesoNH PREP_IDEAL_CASE
 IF(.NOT.ASSOCIATED(USS%XSSO_DIR)) ALLOCATE(USS%XSSO_DIR(KSIZE_FULL))
 YRECFM='SSO_DIR'
  CALL READ_SURF(HPROGRAM,YRECFM,USS%XSSO_DIR(:),IRESP)