diff --git a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C
index e6b68fed3f90daa8efe406462190ea90d3e289d5..88b8f703d9436f50cefe69c5b705bc407e07604f 100644
--- a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C
+++ b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C
@@ -124,7 +124,10 @@ int main(int argc, char *argv[])
 
         rho = thermo.rho();
 
-        runTime.write();
+        if (runTime.write())
+        {
+            chemistry.dQ()().write();
+        }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
diff --git a/applications/solvers/combustion/dieselFoam/dieselFoam.C b/applications/solvers/combustion/dieselFoam/dieselFoam.C
index 77b771379682ac2ca6332e3baa77f1541d0357b9..d5eeefc98b4b4766510835745da39417dd8eb9de 100644
--- a/applications/solvers/combustion/dieselFoam/dieselFoam.C
+++ b/applications/solvers/combustion/dieselFoam/dieselFoam.C
@@ -114,7 +114,10 @@ int main(int argc, char *argv[])
 
         rho = thermo.rho();
 
-        runTime.write();
+        if (runTime.write())
+        {
+            chemistry.dQ()().write();
+        }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C
index 1aecd98887bc2864260181201fe3faed6544da84..35921313c337967ad0286f392b2d7a2fc70f5951 100644
--- a/applications/solvers/combustion/reactingFoam/reactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C
@@ -86,7 +86,10 @@ int main(int argc, char *argv[])
 
         turbulence->correct();
 
-        rho = thermo.rho();
+        if (runTime.write())
+        {
+            chemistry.dQ()().write();
+        }
 
         runTime.write();
 
diff --git a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C
index 58b338f43073b67693ef48b3376f0ad082f4f9ef..680bd784e0e2a54876111eecdf5ca23a6d06119d 100644
--- a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C
+++ b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C
@@ -86,7 +86,10 @@ int main(int argc, char *argv[])
 
         rho = thermo.rho();
 
-        runTime.write();
+        if (runTime.write())
+        {
+            chemistry.dQ()().write();
+        }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
index 8f0607bafa2d22d33aceebbfafd1cded66bbe2e6..8a7fb290b8493a21b5cbfb24ccec1438736bfa4c 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
+++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
@@ -114,7 +114,10 @@ int main(int argc, char *argv[])
 
         rho = thermo.rho();
 
-        runTime.write();
+        if (runTime.write())
+        {
+            chemistry.dQ()().write();
+        }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C
index a18e17758123443a7c836bc59151e435fc01fa4c..5d3705430f9888c1dbbb1f3910e496de144ea611 100644
--- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C
+++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C
@@ -99,12 +99,14 @@ int main(int argc, char *argv[])
             #include "pEqn.H"
         }
 
-
         turbulence->correct();
 
         rho = thermo.rho();
 
-        runTime.write();
+        if (runTime.write())
+        {
+            chemistry.dQ()().write();
+        }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
index 4b4015c990a269e93d919de833261c5b841bd58b..62f8f4834a93529078603ab923a7336c60a7ae90 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
@@ -101,7 +101,10 @@ int main(int argc, char *argv[])
 
         rho = thermo.rho();
 
-        runTime.write();
+        if (runTime.write())
+        {
+            chemistry.dQ()().write();
+        }
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C
index dfe226da197e43ebeca9e6f333c2e4e76bb3f18d..7153826609d66271404f693e633450c9cc2ca06c 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C
@@ -246,11 +246,9 @@ Foam::scalar Foam::ODEChemistryModel<CompType, ThermoType>::omega
         {
             pr *= pow(cr, exp - 1.0);
         }
-
     }
 
     return pf*cf - pr*cr;
-
 }
 
 
@@ -468,10 +466,27 @@ Foam::ODEChemistryModel<CompType, ThermoType>::tc() const
         this->thermo().rho()
     );
 
-    label nCells = rho.size();
-    label nReaction = reactions_.size();
+    tmp<volScalarField> tsource
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "tc",
+                this->time().timeName(),
+                this->mesh(),
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            this->mesh(),
+            dimensionedScalar("zero", dimTime, SMALL),
+            zeroGradientFvPatchScalarField::typeName
+        )
+    );
+
+    scalarField& t = tsource();
 
-    scalarField t(nCells, SMALL);
+    label nReaction = reactions_.size();
 
     if (this->chemistry_)
     {
@@ -509,25 +524,7 @@ Foam::ODEChemistryModel<CompType, ThermoType>::tc() const
         }
     }
 
-    tmp<volScalarField> tsource
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                "tc",
-                this->mesh_.time().timeName(),
-                this->mesh_,
-                IOobject::NO_READ,
-                IOobject::NO_WRITE
-            ),
-            this->mesh_,
-            dimensionedScalar("zero", dimTime, 0.0),
-            zeroGradientFvPatchScalarField::typeName
-        )
-    );
 
-    tsource().internalField() = t;
     tsource().correctBoundaryConditions();
 
     return tsource;
@@ -682,7 +679,7 @@ Foam::scalar Foam::ODEChemistryModel<CompType, ThermoType>::solve
 
     forAll(rho, celli)
     {
-        for (label i=0; i<nSpecie(); i++)
+        for (label i=0; i<nSpecie_; i++)
         {
             RR_[i][celli] = 0.0;
         }
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H
index 43df6e0406ee2ed27d0de94b832bd399864648d5..8991f250f9c5fe9adb97b147ca94378d66c3c6ec 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H
@@ -26,7 +26,7 @@ Class
     Foam::rhoChemistryModel
 
 Description
-    Chemistry model for compressibility-based thermodynamics
+    Chemistry model for density-based thermodynamics
 
 SourceFiles
     rhoChemistryModelI.H