diff --git a/src/OpenFOAM/db/Time/findTimes.C b/src/OpenFOAM/db/Time/findTimes.C
index 48da1fa44ef3e8f06a6edac53763d48142be9965..9f5b6cc2164a0b2b4c6f68836b98b7a9708e6658 100644
--- a/src/OpenFOAM/db/Time/findTimes.C
+++ b/src/OpenFOAM/db/Time/findTimes.C
@@ -56,6 +56,7 @@ instantList Time::findTimes(const fileName& directory)
     label nTimes = 0;
 
     // Check for "constant"
+    bool haveConstant = false;
     forAll(dirEntries, i)
     {
         if (dirEntries[i] == "constant")
@@ -63,6 +64,7 @@ instantList Time::findTimes(const fileName& directory)
             Times[nTimes].value() = 0;
             Times[nTimes].name() = dirEntries[i];
             nTimes++;
+            haveConstant = true;
             break;
         }
     }
@@ -84,9 +86,16 @@ instantList Time::findTimes(const fileName& directory)
     // Reset the length of the times list
     Times.setSize(nTimes);
 
-    if (nTimes > 1)
+    if (haveConstant)
     {
-        std::sort(&Times[1], Times.end(), instant::less());
+        if (nTimes > 2)
+        {
+            std::sort(&Times[1], Times.end(), instant::less());
+        }
+    }
+    else if (nTimes > 1)
+    {
+        std::sort(&Times[0], Times.end(), instant::less());
     }
 
     return Times;