diff --git a/src/OpenFOAM/db/Time/TimeIO.C b/src/OpenFOAM/db/Time/TimeIO.C
index 4324cac2cf2bf75330b97d90975beba905d663e8..fac912632902caab3a1379fbe4ad80b9a783d4cd 100644
--- a/src/OpenFOAM/db/Time/TimeIO.C
+++ b/src/OpenFOAM/db/Time/TimeIO.C
@@ -655,7 +655,10 @@ bool Foam::Time::writeObject
             // Does the writeTime trigger purging?
             if (writeTime_ && purgeWrite_)
             {
-                previousWriteTimes_.push(timeName());
+                if (previousWriteTimes_.top() != timeName())
+                {
+                    previousWriteTimes_.push(timeName());
+                }
 
                 while (previousWriteTimes_.size() > purgeWrite_)
                 {