diff --git a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
index 42d459ce01254a404dbff9ef2863dcf4fbd47cdf..03d1654fda5456e248b73a1286b2f46fb9e7ba1c 100644
--- a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
+++ b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
@@ -294,10 +294,20 @@ tmp<fvScalarMatrix> thermoSingleLayer::q(volScalarField& hs) const
 {
     dimensionedScalar Tstd("Tstd", dimTemperature, 298.15);
 
+    volScalarField htcst = htcs_->h()();
+    volScalarField htcwt = htcw_->h()();
+    forAll(alpha_, i)
+    {
+        htcst[i] *= max(alpha_[i], ROOTVSMALL);
+        htcwt[i] *= max(alpha_[i], ROOTVSMALL);
+    }
+    htcst.correctBoundaryConditions();
+    htcwt.correctBoundaryConditions();
+
     return
     (
-      - fvm::Sp(htcs_->h()/Cp_, hs) - htcs_->h()*(Tstd - TPrimary_)
-      - fvm::Sp(htcw_->h()/Cp_, hs) - htcw_->h()*(Tstd - Tw_)
+      - fvm::Sp(htcst/Cp_, hs) - htcst*(Tstd - TPrimary_)
+      - fvm::Sp(htcwt/Cp_, hs) -htcwt*(Tstd - Tw_)
     );
 }