diff --git a/src/mage_Charriage.f90 b/src/mage_Charriage.f90
index 9fc9f0587a443d1eeabc079a8e2981b8a40524ef..7394044ddfa20e329c838c568318318824cb6a15 100644
--- a/src/mage_Charriage.f90
+++ b/src/mage_Charriage.f90
@@ -921,13 +921,23 @@ subroutine update_profil_uniforme(is, lit, CS_active_0, CS_active_1, CS_substrat
    real(kind=long) :: delta_m    !variation de masse d'une couche sédimentaire ; > 0 si dépôt, < 0 si érosion
    real(kind=long) :: delta_h    !variation d'épaisseur d'une couche sédimentaire
    real(kind=long) :: z
+   real(kind=long) :: L          !min entre largeur active et largeur au miroir
 
    prfl => la_topo%sections(is)
    delta_m = CS_active_1%m + CS_substrat_1%m - CS_active_0%m - CS_substrat_0%m
    !on convertit la variation de masse en variation d'épaisseur
 !   delta_h = delta_m / (rhos * (1._long-porosity) * dx * perimetre(prfl,h_state(is)%z,lit))
-   delta_h = delta_m / (rhos * (1._long-porosity) * dx * min(prfl%largeur_active,largeur(prfl,h_state(is)%z,lit)))
-
+!   delta_h = delta_m / (rhos * (1._long-porosity) * dx * min(prfl%largeur_active,largeur(prfl,h_state(is)%z,lit)))
+   if (lit == 1) then
+		L = min(distanceH(prfl%xyz(prfl%kfg), prfl%xyz(prfl%irg)), largeur(prfl,h_state(is)%z,lit))
+	elseif (lit == 3) then  
+		L = min(distanceH(prfl%xyz(prfl%ird), prfl%xyz(prfl%kfd)), largeur(prfl,h_state(is)%z,lit))
+	else 
+		L = min(prfl%largeur_active, largeur(prfl,h_state(is)%z,lit))
+	endif
+	
+	delta_h = delta_m / (rhos * (1._long-porosity) * dx * L)
+   
    !correction du profil
    do k = prfl%li(lit-1), prfl%li(lit)-1
       if (k <= prfl%kfg .or. k >= prfl%kfd) cycle  !les points kfg et kfd ne bougent pas