diff --git a/src/Physics/Heat/heat_water.jl b/src/Physics/Heat/heat_water.jl
index a187f4f93ed79a0a3915f86e94ab675277f94c70..5c513182411145961fb8d90c2f93e4fcab1efe60 100644
--- a/src/Physics/Heat/heat_water.jl
+++ b/src/Physics/Heat/heat_water.jl
@@ -10,7 +10,7 @@ WaterHeatBC(waterbc::WaterBC, heatbc::HeatBC) = Coupled(waterbc, heatbc)
 Computes the advective energy flux between grid cells with temperatures `T₁` and `T₂`
 given the heat capacity of water `cw` and latent heat of fusion `L`.
 """
-advectiveflux(jw, T₁, T₂, cw, L) = jw*(cw*(T₁-T₂) + L)
+advectiveflux(jw, T₁, T₂, cw, L) = jw*(cw*T₁*(jw > zero(jw)) + cw*T₂*(jw < zero(jw)) + L)
 
 """
     water_energy_advection!(::SubSurface, ::Coupled(WaterBalance, HeatBalance), state)