diff --git a/src/SURFEX/isba_hveg.F90 b/src/SURFEX/isba_hveg.F90
index 2c32ae292a4a7ea2bce225d094cef283698bebd0..7bad4f3ad3d3fb4f00b3096b3dd4ddea4634cba8 100644
--- a/src/SURFEX/isba_hveg.F90
+++ b/src/SURFEX/isba_hveg.F90
@@ -399,6 +399,11 @@ WHERE (PLE_HVEG>PRN_HVEG .AND. PEK%XTV<PTA-1.)
   ZDELTA_H = PRHOA * XCPD * ZVEG * (ZDT ) / PEK%XRESA / PEXNS
   ZDELTA_G = ZVEG * ZCHEATV * ZDT / PTSTEP
   ZDELTA_LE= - ZDELTA_H - ZDELTA_G
+  !
+  ! J. Wurtz & V. Masson Check if ZDELTA_LE > 0 to avoid too violent spin-up
+  ! Residual is increased of remaining energy
+  ZDELTA_LE= MAX(ZDELTA_LE, -PLE_HVEG)
+  ZDELTA_G= - ZDELTA_H - ZDELTA_LE
 END WHERE
 !
 PH_HVEG (:) = PH_HVEG (:) + ZDELTA_H (:)