diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index e2cc8e28b5f8b2a2a11d39ca933d5db71a74e3b1..7792e9dca20db295c868979c05c4f39bda2ed6a5 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -336,16 +336,28 @@ void Foam::Time::setControls()
 
 void Foam::Time::setMonitoring(bool forceProfiling)
 {
-    // initialize profiling on request
-    // skip if 'active' keyword is explicitly set to false
-    const dictionary* profilingDict =
-    (
-        forceProfiling
-      ? &dictionary::null
-      : controlDict_.subDictPtr("profiling")
-    );
+    const dictionary* profilingDict = controlDict_.subDictPtr("profiling");
 
-    if
+    // initialize profiling on request
+    // otherwise rely on profiling entry within controlDict
+    // and skip if 'active' keyword is explicitly set to false
+    if (forceProfiling)
+    {
+        profiling::initialize
+        (
+            IOobject
+            (
+                "profiling",
+                timeName(),
+                "uniform",
+                *this,
+                IOobject::NO_READ,
+                IOobject::AUTO_WRITE
+            ),
+            *this
+        );
+    }
+    else if
     (
         profilingDict
      && profilingDict->lookupOrDefault<Switch>("active", true)
diff --git a/src/OpenFOAM/global/profiling/profiling.C b/src/OpenFOAM/global/profiling/profiling.C
index f64504f75a6cf7cb1b6f8fe7fb81df7da5762867..f1aec918209f4ee3a6a263d9d1ab4dcf8abf2ae7 100644
--- a/src/OpenFOAM/global/profiling/profiling.C
+++ b/src/OpenFOAM/global/profiling/profiling.C
@@ -438,6 +438,22 @@ bool Foam::profiling::writeData(Ostream& os) const
 }
 
 
+bool Foam::profiling::writeObject
+(
+    IOstream::streamFormat,
+    IOstream::versionNumber ver,
+    IOstream::compressionType
+) const
+{
+    return regIOobject::writeObject
+    (
+        IOstream::ASCII,
+        ver,
+        IOstream::UNCOMPRESSED
+    );
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 Foam::profiling::Information* Foam::profiling::store(Information *info)
diff --git a/src/OpenFOAM/global/profiling/profiling.H b/src/OpenFOAM/global/profiling/profiling.H
index 409cbff461eae74dc972c692a82371c114980d5b..4986a92168bce4fe4ab53ec845405114e490f3cd 100644
--- a/src/OpenFOAM/global/profiling/profiling.H
+++ b/src/OpenFOAM/global/profiling/profiling.H
@@ -207,6 +207,14 @@ public:
         //- writeData member function required by regIOobject
         virtual bool writeData(Ostream&) const;
 
+        //- Write as uncompressed ASCII, using given format
+        virtual bool writeObject
+        (
+            IOstream::streamFormat ignoreAlwaysASCII,
+            IOstream::versionNumber ver,
+            IOstream::compressionType ignoreAlwaysUncompressed
+        ) const;
+
 };