Index: trunk/src/org/openstreetmap/josm/gui/SplashScreen.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 7320)
+++ trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 7321)
@@ -197,5 +197,6 @@
             long now = System.currentTimeMillis();
             String prevMessageTitle = messages.getLast();
-            if (!prevMessageTitle.isEmpty()) {
+            // now should always be >= time but if can be inferior sometimes, see #10287
+            if (!prevMessageTitle.isEmpty() && now >= time) {
                 messages.removeLast();
                 messages.add(tr("{0} ({1})", prevMessageTitle, Utils.getDurationString(now - time)));
Index: trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 7320)
+++ trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 7321)
@@ -887,5 +887,5 @@
     public static String getDurationString(long elapsedTime) throws IllegalArgumentException {
         if (elapsedTime < 0) {
-            throw new IllegalArgumentException("elapsedTime must be > 0");
+            throw new IllegalArgumentException("elapsedTime must be >= 0");
         }
         // Is it less than 1 second ?
