diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 0051d23153104f301817f973b09f813bc0de8932..20fca2c4dbea7ff8eb8836600be3ff375697c239 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -212,6 +212,21 @@ void Foam::Time::setControls()
     {
         timeIndex_ = startTimeIndex_;
     }
+
+    scalar timeValue;
+    if (timeDict.readIfPresent("value", timeValue))
+    {
+        if (mag(timeValue - value()) > SMALL)
+        {
+            IOWarningIn("Time::setControls()", timeDict)
+                << "Time read from time dictionary " << timeValue
+                << " differs from actual time " << value() << '.' << nl
+                << "    This may cause unexpected database behaviour."
+                << " If you are not interested" << nl
+                << "    in preserving time state delete the time dictionary."
+                << endl;
+        }
+    }
 }
 
 
diff --git a/src/OpenFOAM/db/Time/TimeIO.C b/src/OpenFOAM/db/Time/TimeIO.C
index 9ed963127d8f7eba9b3dbf92189cd64b2b7075a9..fcf0a969e2d31f3542a92ce9defb4b41fb6b8ff3 100644
--- a/src/OpenFOAM/db/Time/TimeIO.C
+++ b/src/OpenFOAM/db/Time/TimeIO.C
@@ -307,6 +307,7 @@ bool Foam::Time::writeObject
             )
         );
 
+        timeDict.add("value", value());
         timeDict.add("index", timeIndex_);
         timeDict.add("deltaT", deltaT_);
         timeDict.add("deltaT0", deltaT0_);