diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index f002f414f..fc828e00b 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -96,6 +96,9 @@ void Foam::Time::adjustDeltaT()
         );
     }
 
+    // Estimation for controlDict settings
+    scalar deltaT = 0;
+
     if (adjustTime)
     {
         scalar nSteps = timeToNextWrite/deltaT_ - small;
@@ -111,16 +114,19 @@ void Foam::Time::adjustDeltaT()
             // and the decrease within a factor of 5.
             if (newDeltaT >= deltaT_)
             {
-                deltaT_ = min(newDeltaT, 2.0*deltaT_);
+                deltaT = min(newDeltaT, 2.0*deltaT_);
             }
             else
             {
-                deltaT_ = max(newDeltaT, 0.2*deltaT_);
+                deltaT = max(newDeltaT, 0.2*deltaT_);
             }
         }
     }
 
     functionObjects_.adjustTimeStep();
+
+    // Adjust the time step based on functionObjects settings or controlDict
+    deltaT_ = min(deltaT_, deltaT);
 }
 
 
