diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
index 7c2fd375831af8226f50535b3b13097ba7ef2414..e5d8e25d5f217bcb71c22d7620f5d4fe8f6f0e61 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
@@ -174,9 +174,12 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::cellValueSourceCorrection
     const scalar cpc = td.cpInterp().psi()[cellI];
     this->cpc_ = (massCell*cpc + addedMass*cpEff)/massCellNew;
 
-    const scalar fCarrier = -1.0/td.constProps().hRetentionCoeff();
+    const scalar fCarrier =
+        (1.0 - td.cloud().constProps().hRetentionCoeff())
+       /td.cloud().constProps().hRetentionCoeff();
+
     const scalar dh =
-        td.cloud().hsTrans()[cellI] + fCarrier*td.cloud().hcTrans()[cellI];
+        td.cloud().hsTrans()[cellI] - fCarrier*td.cloud().hcTrans()[cellI];
 
     this->Tc_ += dh/(this->cpc_*massCellNew);
 }
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
index ef40cdc9948bfbe2e8082923f3f497424cdca541..e70b922ae21621cbcb5ae6665e148697515a29d8 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
@@ -39,7 +39,19 @@ constantProperties
     (
         dimensionedScalar(this->dict().lookup("hRetentionCoeff")).value()
     )
-{}
+{
+    if ((hRetentionCoeff_ < 0) || (hRetentionCoeff_ > 1))
+    {
+        FatalErrorIn
+        (
+            "ReactingMultiphaseParcel<ParcelType>::constantProperties::"
+            "constantProperties"
+        )   << "hRetentionCoeff must be in the range 0 to 1" << nl
+            << exit(FatalError) << endl;
+    }
+
+    hRetentionCoeff_ = max(1e-06, hRetentionCoeff_);
+}
 
 
 template<class ParcelType>