--- LiquidEvaporationBoil.C.org	2013-08-07 13:46:54.780906438 +0300
+++ LiquidEvaporationBoil.C	2013-08-07 13:48:06.294096459 +0300
@@ -151,18 +151,37 @@ void Foam::LiquidEvaporationBoil<CloudTy
     scalarField& dMassPC
 ) const
 {
-    // construct carrier phase species volume fractions for cell, cellI
-    const scalarField XcMix(calcXc(cellI));
-
     // liquid volume fraction
     const scalarField X(liquids_.X(Yl));
 
+    // immediately evaporate mass that has reached critical condition
+    if (mag(T - liquids_.Tc(X)) < SMALL)
+    {
+        if (debug)
+        {
+            WarningIn
+            (
+                "void Foam::LiquidEvaporationBoil<CloudType>::calculate"
+            )   << "Parcel reached critical conditions" << endl;
+        }
+
+        forAll(activeLiquids_, i)
+        {
+            const label lid = liqToLiqMap_[i];
+            dMassPC[lid] = GREAT;
+        }
+        return;
+    }
+
     // droplet surface pressure assumed to surface vapour pressure
     scalar ps = liquids_.pv(pc, Ts, X);
 
     // vapour density at droplet surface [kg/m3]
     scalar rhos = ps*liquids_.W(X)/(specie::RR*Ts);
 
+    // construct carrier phase species volume fractions for cell, cellI
+    const scalarField XcMix(calcXc(cellI));
+
     // carrier thermo properties
     scalar Hsc = 0.0;
     scalar Hc = 0.0;
