diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
index deaba4dd1fdc9ffe503a4af3043c502490ec0acb..9d2307d4183d8007046604226728608ad18b7a20 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
@@ -35,8 +35,7 @@ volVectorField U
         IOobject::MUST_READ,
         IOobject::AUTO_WRITE
     ),
-    mesh,
-    true
+    mesh
 );
 
 #include "compressibleCreatePhi.H"
@@ -57,20 +56,7 @@ autoPtr<compressible::turbulenceModel> turbulence
     )
 );
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh,
-        IOobject::READ_IF_PRESENT,
-        IOobject::AUTO_WRITE
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
+#include "createDpdt.H"
 
 #include "createK.H"
 
diff --git a/src/finiteVolume/cfdTools/compressible/createDpdt.H b/src/finiteVolume/cfdTools/compressible/createDpdt.H
new file mode 100644
index 0000000000000000000000000000000000000000..7c7300692472bbec85481d415392953e32474701
--- /dev/null
+++ b/src/finiteVolume/cfdTools/compressible/createDpdt.H
@@ -0,0 +1,18 @@
+Info<< "Creating field dpdt\n" << endl;
+volScalarField dpdt
+(
+   IOobject
+    (
+        "dpdt",
+        runTime.timeName(),
+        mesh,
+        IOobject::NO_READ,
+        IOobject::NO_WRITE
+    ),
+    fvc::ddt(p)
+);
+
+if (!thermo.dpdt())
+{
+    dpdt == dimensionedScalar("0", dpdt.dimensions(), 0);
+}