diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
index cf3fec1732da77250167e2052cd8cf5e54afeb44..dfec32bc4bcb7c8b8378a11a2f5b6a09a912d34f 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
@@ -67,15 +67,7 @@ void Foam::ReactingCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ReactingCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField Cp = this->thermo().thermo().Cp();
-
-    autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        Cp
-    );
-
-    typename ParcelType::trackData td(*this, CpInterp());
+    typename ParcelType::trackData td(*this);
 
     label preInjectionSize = this->size();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
index 9dc75d51389e29a2a54417761e8081d1feee0284..b383f38f10aa70bef55a537412c6e927837e31e2 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
@@ -40,15 +40,7 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ReactingMultiphaseCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField Cp = this->thermo().thermo().Cp();
-
-    autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        Cp
-    );
-
-    typename ParcelType::trackData td(*this, CpInterp());
+    typename ParcelType::trackData td(*this);
 
     label preInjectionSize = this->size();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
index 5296583c2b05c60eca7006deefdfa8955de9b811..17469774af3e3d758161e0f42a5ca82855c0edb0 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
@@ -41,15 +41,7 @@ void Foam::ThermoCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ThermoCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField Cp = thermo_.thermo().Cp();
-
-    autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        Cp
-    );
-
-    typename ParcelType::trackData td(*this, CpInterp());
+    typename ParcelType::trackData td(*this);
 
     label preInjectionSize = this->size();
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
index b4b9ff213a2cdbca9b3979ae6c2733dcf9eb850c..97cfb935dc4f2ba90f65ce7aaf6b85326ce6ae53 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
@@ -127,7 +127,6 @@ public:
             inline trackData
             (
                 ReactingMultiphaseCloud<ParcelType>& cloud,
-                const interpolation<scalar>& CpInterp,
                 typename ReactingParcel<ParcelType>::trackData::trackPart
                     part = ReactingParcel<ParcelType>::trackData::tpLinearTrack
              );
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
index 454ec13f0efe97a343d2985711929afa0e76b240..4d67ca43d468eb3816711c9302540e5c9196d935 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
@@ -54,11 +54,10 @@ template<class ParcelType>
 inline Foam::ReactingMultiphaseParcel<ParcelType>::trackData::trackData
 (
     ReactingMultiphaseCloud<ParcelType>& cloud,
-    const interpolation<scalar>& CpInterp,
     typename ReactingParcel<ParcelType>::trackData::trackPart part
 )
 :
-    ReactingParcel<ParcelType>::trackData(cloud, CpInterp, part),
+    ReactingParcel<ParcelType>::trackData(cloud, part),
     cloud_(cloud),
     constProps_(cloud.constProps())
 {}
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
index 0d6cc119ab55ba909fc1fc01796030b8b3a14430..d4423bc8c14c83588a12ea7bb76cd8fc6da4f837 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
@@ -139,7 +139,6 @@ public:
             inline trackData
             (
                 ReactingCloud<ParcelType>& cloud,
-                const interpolation<scalar>& CpInterp,
                 typename ThermoParcel<ParcelType>::trackData::trackPart
                     part = ThermoParcel<ParcelType>::trackData::tpLinearTrack
             );
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
index 285a1af0dadf773e70746b5bb913b7c5963a2bfc..4206975a70c37af4dc5ee79f1591e54e26d2d5b4 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
@@ -43,11 +43,10 @@ template<class ParcelType>
 inline Foam::ReactingParcel<ParcelType>::trackData::trackData
 (
     ReactingCloud<ParcelType>& cloud,
-    const interpolation<scalar>& CpInterp,
     typename ThermoParcel<ParcelType>::trackData::trackPart part
 )
 :
-    ThermoParcel<ParcelType>::trackData(cloud, CpInterp, part),
+    ThermoParcel<ParcelType>::trackData(cloud, part),
     cloud_(cloud),
     constProps_(cloud.constProps()),
     pInterp_
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
index 38de73df1bc57835c5c42508dad1023410794971..2924dc3eb0a6ac3a0ccf7db1b54dfa6a5a72960b 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
@@ -141,6 +141,11 @@ public:
             //- Particle constant properties
             const constantProperties& constProps_;
 
+            //- Local copy of specific heat field
+            //  Cp not stored on acrrier thermo, but returned as tmp<...>
+            const volScalarField Cp_;
+
+
             // Interpolators for continuous phase fields
 
                 //- Temperature field interpolator
@@ -158,7 +163,6 @@ public:
             inline trackData
             (
                 ThermoCloud<ParcelType>& cloud,
-                const interpolation<scalar>& CpInterp,
                 typename KinematicParcel<ParcelType>::trackData::trackPart
                     part = KinematicParcel<ParcelType>::trackData::tpLinearTrack
             );
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
index a7b9b9d68b91225e693b94b9f852ad106df7665e..69ba4e610940504f2889e2ac492230a10268a98b 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
@@ -45,13 +45,24 @@ template<class ParcelType>
 inline Foam::ThermoParcel<ParcelType>::trackData::trackData
 (
     ThermoCloud<ParcelType>& cloud,
-    const interpolation<scalar>& CpInterp,
     typename KinematicParcel<ParcelType>::trackData::trackPart part
 )
 :
     KinematicParcel<ParcelType>::trackData(cloud, part),
     cloud_(cloud),
     constProps_(cloud.constProps()),
+    Cp_
+    (
+        IOobject
+        (
+            "Cp",
+            cloud.db().time().timeName(),
+            cloud.db(),
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        cloud.thermo().thermo().Cp()
+    ),
     TInterp_
     (
         interpolation<scalar>::New
@@ -60,7 +71,14 @@ inline Foam::ThermoParcel<ParcelType>::trackData::trackData
             cloud.T()
         )
     ),
-    CpInterp_(CpInterp)
+    CpInterp_
+    (
+        interpolation<scalar>::New
+        (
+            cloud.solution().interpolationSchemes(),
+            Cp_
+        )
+    )
 {}