diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C
index 651d95d1c6c1c98f952ae55db55d22f729d1c081..ced9a982216ff9503944d46a73ddd91fe1c4279e 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C
@@ -157,8 +157,8 @@ void Foam::LiquidEvaporationBoil<CloudType>::calculate
     // liquid volume fraction
     const scalarField X(liquids_.X(Yl));
 
-    // droplet surface pressure
-    scalar ps = liquids_.pv(pc, T, X);
+    // droplet vapour surface pressure
+    scalar ps = liquids_.pv(pc, Ts, X);
 
     // vapour density at droplet surface [kg/m3]
     scalar rhos = ps*liquids_.W(X)/(specie::RR*Ts);
@@ -178,66 +178,64 @@ void Foam::LiquidEvaporationBoil<CloudType>::calculate
         const label lid = liqToLiqMap_[i];
 
         // boiling temperature at cell pressure for liquid species lid [K]
-        const scalar TBoil = liquids_.properties()[lid].pvInvert(pc);
+        const scalar TBoil = liquids_.properties()[lid].pvInvert(ps);
 
         // limit droplet temperature to boiling/critical temperature
         const scalar Td = min(T, 0.999*TBoil);
 
         // saturation pressure for liquid species lid [Pa]
-        const scalar pSat = liquids_.properties()[lid].pv(pc, Td);
+        const scalar pSat = liquids_.properties()[lid].pv(ps, Td);
 
         // carrier phase concentration
         const scalar Xc = XcMix[gid];
 
+
         if (Xc*pc > pSat)
         {
             // saturated vapour - no phase change
         }
         else
         {
+            // vapour diffusivity [m2/s]
+            const scalar Dab = liquids_.properties()[lid].D(ps, Td);
+
+            // Schmidt number
+            const scalar Sc = nu/(Dab + ROOTVSMALL);
+
+            // Sherwood number
+            const scalar Sh = this->Sh(Re, Sc);
+
+
             if (pSat > 0.999*pc)
             {
                 // boiling
 
-//                const scalar deltaT = max(Tc - Td, 0.5);
-                const scalar deltaT = max(Tc - T, 0.5);
+                const scalar deltaT = max(T - TBoil, 0.5);
 
                 // liquid specific heat capacity
                 const scalar Cp = liquids_.properties()[lid].Cp(pc, Td);
 
-                // vapour heat of fomation
+                // vapour heat of formation
                 const scalar hv = liquids_.properties()[lid].hl(pc, Td);
 
-                // Nusselt number
-                const scalar Nu = 2.0 + 0.6*sqrt(Re)*cbrt(Pr);
-
                 const scalar lg = log(1.0 + Cp*deltaT/max(SMALL, hv));
 
                 // mass transfer [kg]
-                dMassPC[lid] += pi*kappac*Nu*lg*d/Cp*dt;
+                // NOTE: Using Sherwood number instead of Nusselt number
+                dMassPC[lid] += pi*kappac*Sh*lg*d/Cp*dt;
             }
             else
             {
                 // evaporation
 
                 // surface molar fraction - Raoult's Law
-                const scalar Xs = X[lid]*pSat/pc;
+                const scalar Xs = X[lid]*pSat/ps;
 
                 // molar ratio
                 const scalar Xr = (Xs - Xc)/max(SMALL, 1.0 - Xs);
 
-
                 if (Xr > 0)
                 {
-                    // vapour diffusivity [m2/s]
-                    const scalar Dab = liquids_.properties()[lid].D(pc, Td);
-
-                    // Schmidt number
-                    const scalar Sc = nu/(Dab + ROOTVSMALL);
-
-                    // Sherwood number
-                    const scalar Sh = this->Sh(Re, Sc);
-
                     // mass transfer coefficient [m/s]
                     const scalar kc = Sh*Dab/(d + ROOTVSMALL);
 
@@ -261,18 +259,24 @@ Foam::scalar Foam::LiquidEvaporationBoil<CloudType>::dh
 {
     scalar dh = 0;
 
+    scalar TDash = T;
+    if (liquids_.properties()[idl].pv(p, T) >= 0.999*p)
+    {
+        TDash = liquids_.properties()[idl].pvInvert(p);
+    }
+
     typedef PhaseChangeModel<CloudType> parent;
     switch (parent::enthalpyTransfer_)
     {
         case (parent::etLatentHeat):
         {
-            dh = liquids_.properties()[idl].hl(p, T);
+            dh = liquids_.properties()[idl].hl(p, TDash);
             break;
         }
         case (parent::etEnthalpyDifference):
         {
-            scalar hc = this->owner().composition().carrier().H(idc, T);
-            scalar hp = liquids_.properties()[idl].h(p, T);
+            scalar hc = this->owner().composition().carrier().H(idc, TDash);
+            scalar hp = liquids_.properties()[idl].h(p, TDash);
 
             dh = hc - hp;
             break;