diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
index dc42e0f9db6267e8a75dff92eed00ce8706a44e8..42cced7658919002b4468a82a60d115e04ac1899 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
@@ -321,6 +321,7 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
       : -1
     ),
     cellOccupancyPtr_(),
+    cellLengthScale_(cbrt(mesh_.V())),
     rho_(rho),
     U_(U),
     mu_(mu),
@@ -421,6 +422,7 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
     subModelProperties_(c.subModelProperties_),
     rndGen_(c.rndGen_, true),
     cellOccupancyPtr_(NULL),
+    cellLengthScale_(c.cellLengthScale_),
     rho_(c.rho_),
     U_(c.U_),
     mu_(c.mu_),
@@ -511,6 +513,7 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
     subModelProperties_(dictionary::null),
     rndGen_(0, 0),
     cellOccupancyPtr_(NULL),
+    cellLengthScale_(c.cellLengthScale_),
     rho_(c.rho_),
     U_(c.U_),
     mu_(c.mu_),
@@ -842,7 +845,9 @@ void Foam::KinematicCloud<CloudType>::patchData
 template<class CloudType>
 void Foam::KinematicCloud<CloudType>::updateMesh()
 {
+    updateCellOccupancy();
     injectors_.updateMesh();
+    cellLengthScale_ = cbrt(mesh_.V());
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
index e32a3bdf4ff4e4aa58cfebdce6c1fc4c385ac95a..9c2a75157b9f562aed954c1bba148b7f6ed5303b 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
@@ -165,6 +165,9 @@ protected:
         //- Cell occupancy information for each parcel, (demand driven)
         autoPtr<List<DynamicList<parcelType*> > > cellOccupancyPtr_;
 
+        //- Cell length scale
+        scalarField cellLengthScale_;
+
 
         // References to the carrier gas fields
 
@@ -368,6 +371,9 @@ public:
                 //  if particles are removed or created.
                 inline List<DynamicList<parcelType*> >& cellOccupancy();
 
+                //- Return the cell length scale
+                inline const scalarField& cellLengthScale() const;
+
 
             // References to the carrier gas fields
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
index 1bbf47b41a553037757ef18001e7671d0864041f..ed0f74793f4cbbbbaae5ec393fef45ce001aedf7 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
@@ -517,6 +517,14 @@ Foam::KinematicCloud<CloudType>::cellOccupancy()
 }
 
 
+template<class CloudType>
+inline const Foam::scalarField&
+Foam::KinematicCloud<CloudType>::cellLengthScale() const
+{
+    return cellLengthScale_;
+}
+
+
 template<class CloudType>
 inline Foam::DimensionedField<Foam::vector, Foam::volMesh>&
 Foam::KinematicCloud<CloudType>::UTrans()
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index b8339628257adc84672f39d2a93bb95a7b7419c2..22e01b9a98ced336dbbfb5e0745ed8cc93034a69 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -265,7 +265,7 @@ bool Foam::KinematicParcel<ParcelType>::move
 
     const polyMesh& mesh = td.cloud().pMesh();
     const polyBoundaryMesh& pbMesh = mesh.boundaryMesh();
-    const scalarField& V = mesh.cellVolumes();
+    const scalarField& cellLengthScale = td.cloud().cellLengthScale();
     const scalar maxCo = td.cloud().solution().maxCo();
 
     scalar tEnd = (1.0 - p.stepFraction())*trackTime;
@@ -290,7 +290,7 @@ bool Foam::KinematicParcel<ParcelType>::move
         if (p.active() && moving && (magU > ROOTVSMALL))
         {
             const scalar d = dt*magU;
-            const scalar dCorr = min(d, maxCo*cbrt(V[cellI]));
+            const scalar dCorr = min(d, maxCo*cellLengthScale[cellI]);
             dt *=
                 dCorr/d
                *p.trackToFace(p.position() + dCorr*U_/magU, td);
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
index 3b732df8fd827d87a4a38d49a45ae2cccc05cdeb..31b746625d39daf61f58240a5e7890dd4ae400a9 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -213,8 +213,8 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
 
     if ((time0 >= 0.0) && (time0 < duration_))
     {
-         volumeAccumulator_ +=
-             fraction_*flowRateProfile_.integrate(time0, time1);
+        volumeAccumulator_ +=
+            fraction_*flowRateProfile_.integrate(time0, time1);
     }
 
     labelHashSet cellCentresUsed;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
index 7d3ccf083ca569e3418093ea90c4cad3f3ed8eff..82080c417405b8c22c0205db1caea4c9d6148cfe 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
@@ -586,27 +586,25 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
                             pPtr->rho()
                         );
 
-                    const scalar mParcel0 = pPtr->nParticle()*pPtr->mass();
-
-                    if (!pPtr->move(td, dt))
-                    {
-                        massAdded += mParcel0;
-                        delete pPtr;
-                    }
-                    else
+                    if (pPtr->nParticle() >= 1.0)
                     {
-                        if (pPtr->nParticle() >= 1.0)
+                        parcelsAdded++;
+                        massAdded += pPtr->nParticle()*pPtr->mass();
+
+                        if (pPtr->move(td, dt))
                         {
                             td.cloud().addParticle(pPtr);
-                            massAdded += mParcel0;
-                            parcelsAdded++;
                         }
                         else
                         {
-                            delayedVolume += pPtr->nParticle()*pPtr->volume();
                             delete pPtr;
                         }
                     }
+                    else
+                    {
+                        delayedVolume += pPtr->nParticle()*pPtr->volume();
+                        delete pPtr;
+                    }
                 }
             }
         }
diff --git a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C
index 15d5cb1b622d7a2fae0749131a7947b357d9530d..16af6adc2af4e2fe2235ba4b4507dda3b92d833a 100644
--- a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C
+++ b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C
@@ -93,13 +93,11 @@ void Foam::SprayParcel<ParcelType>::calc
     td.cloud().constProps().setTMax(TMax);
 
     // store the parcel properties
-    const scalarField& Y(this->Y());
-    scalarField X(composition.liquids().X(Y));
-
-    this->Cp() = composition.liquids().Cp(this->pc_, T0, X);
-    sigma_ = composition.liquids().sigma(this->pc_, T0, X);
-    scalar rho0 = composition.liquids().rho(this->pc_, T0, X);
+    this->Cp() = composition.liquids().Cp(pc0, T0, X0);
+    sigma_ = composition.liquids().sigma(pc0, T0, X0);
+    scalar rho0 = composition.liquids().rho(pc0, T0, X0);
     this->rho() = rho0;
+    mu_ = composition.liquids().mu(pc0, T0, X0);
 
     ParcelType::calc(td, dt, cellI);
 
@@ -113,11 +111,13 @@ void Foam::SprayParcel<ParcelType>::calc
 
         this->Cp() = composition.liquids().Cp(this->pc_, T1, X1);
 
-        sigma_ = composition.liquids().sigma(this->pc_, T1, X);
+        sigma_ = composition.liquids().sigma(this->pc_, T1, X1);
 
         scalar rho1 = composition.liquids().rho(this->pc_, T1, X1);
         this->rho() = rho1;
 
+        mu_ = composition.liquids().mu(this->pc_, T1, X1);
+
         scalar d1 = this->d()*cbrt(rho0/rho1);
         this->d() = d1;
 
@@ -360,10 +360,6 @@ void Foam::SprayParcel<ParcelType>::solveTABEq
     const scalar dt
 )
 {
-    typedef typename TrackData::cloudType::reactingCloudType reactingCloudType;
-    const CompositionModel<reactingCloudType>& composition =
-        td.cloud().composition();
-
     const scalar& TABCmu = td.cloud().breakup().TABCmu();
     const scalar& TABWeCrit = td.cloud().breakup().TABWeCrit();
     const scalar& TABComega = td.cloud().breakup().TABComega();
@@ -372,26 +368,19 @@ void Foam::SprayParcel<ParcelType>::solveTABEq
     scalar r2 = r*r;
     scalar r3 = r*r2;
 
-    const scalarField& Y(this->Y());
-    scalarField X(composition.liquids().X(Y));
-
-    scalar rho = composition.liquids().rho(this->pc(), this->T(), X);
-    scalar mu = composition.liquids().mu(this->pc(), this->T(), X);
-    scalar sigma = composition.liquids().sigma(this->pc(), this->T(), X);
-
     // inverse of characteristic viscous damping time
-    scalar rtd = 0.5*TABCmu*mu/(rho*r2);
+    scalar rtd = 0.5*TABCmu*mu_/(this->rho()*r2);
 
     // oscillation frequency (squared)
-    scalar omega2 = TABComega*sigma/(rho*r3) - rtd*rtd;
+    scalar omega2 = TABComega*sigma_/(this->rho()*r3) - rtd*rtd;
 
     if (omega2 > 0)
     {
         scalar omega = sqrt(omega2);
         scalar rhoc = this->rhoc();
-        scalar Wetmp = this->We(this->U(), r, rhoc, sigma)/TABWeCrit;
+        scalar We = this->We(this->U(), r, rhoc, sigma_)/TABWeCrit;
 
-        scalar y1 = this->y() - Wetmp;
+        scalar y1 = this->y() - We;
         scalar y2 = this->yDot()/omega;
 
         // update distortion parameters
@@ -400,7 +389,7 @@ void Foam::SprayParcel<ParcelType>::solveTABEq
         scalar e = exp(-rtd*dt);
         y2 = (this->yDot() + y1*rtd)/omega;
 
-        this->y() = Wetmp + e*(y1*c + y2*s);
+        this->y() = We + e*(y1*c + y2*s);
         if (this->y() < 0)
         {
             this->y() = 0.0;
@@ -408,7 +397,7 @@ void Foam::SprayParcel<ParcelType>::solveTABEq
         }
         else
         {
-            this->yDot() = (Wetmp - this->y())*rtd + e*omega*(y2*c - y1*s);
+            this->yDot() = (We - this->y())*rtd + e*omega*(y2*c - y1*s);
         }
     }
     else
diff --git a/src/lagrangian/spray/submodels/BreakupModel/ReitzDiwakar/ReitzDiwakar.C b/src/lagrangian/spray/submodels/BreakupModel/ReitzDiwakar/ReitzDiwakar.C
index 79b26186eb154f6f85b2e09d4194dd62a6e92fbf..504b681dc631f5482cfd819617cf46757ef997de 100644
--- a/src/lagrangian/spray/submodels/BreakupModel/ReitzDiwakar/ReitzDiwakar.C
+++ b/src/lagrangian/spray/submodels/BreakupModel/ReitzDiwakar/ReitzDiwakar.C
@@ -101,11 +101,9 @@ bool Foam::ReitzDiwakar<CloudType>::update
     scalar We = 0.5*rhoc*sqr(Urmag)*d/sigma;
     scalar Re = Urmag*d/nuc;
 
-    scalar sqRey = sqrt(Re);
-
     if (We > Cbag_)
     {
-        if (We > Cstrip_*sqRey)
+        if (We > Cstrip_*sqrt(Re))
         {
             scalar dStrip = sqr(2.0*Cstrip_*sigma)/(rhoc*pow3(Urmag)*muc);
             scalar tauStrip = Cs_*d*sqrt(rho/rhoc)/Urmag;
@@ -117,9 +115,7 @@ bool Foam::ReitzDiwakar<CloudType>::update
         else
         {
             scalar dBag = 2.0*Cbag_*sigma/(rhoc*sqr(Urmag));
-
             scalar tauBag = Cb_*d*sqrt(rho*d/sigma);
-
             scalar fraction = dt/tauBag;
 
             // new droplet diameter, implicit calculation
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/chemistryProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/chemistryProperties
index ff1c96ea9660b955dffc025eda37ee04bd8ef0ba..16abe88752c48159501619254405bab19431985b 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/chemistryProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/chemistryProperties
@@ -17,7 +17,7 @@ FoamFile
 
 chemistryType
 {
-    chemistrySolver   ode;
+    chemistrySolver   noChemistrySolver;
     chemistryThermo   rho;
 }