diff --git a/src/org/openstreetmap/josm/gui/GettingStarted.java b/src/org/openstreetmap/josm/gui/GettingStarted.java
index 6fbdaca..648e433 100644
--- a/src/org/openstreetmap/josm/gui/GettingStarted.java
+++ b/src/org/openstreetmap/josm/gui/GettingStarted.java
@@ -90,13 +90,14 @@ public class GettingStarted extends JPanel {
          * Additionally check if JOSM has been updated and refresh MOTD
          */
         @Override
-        protected boolean isCacheValid() {
+        protected boolean isCacheValid(byte[] data) {
             // We assume a default of myVersion because it only kicks in in two cases:
             // 1. Not yet written - but so isn't the interval variable, so it gets updated anyway
             // 2. Cannot be written (e.g. while developing). Obviously we don't want to update
             // everytime because of something we can't read.
             return (Main.pref.getInteger("cache.motd.html.version", -999) == myVersion)
-            && Main.pref.get("cache.motd.html.lang").equals(myLang);
+                    && Main.pref.get("cache.motd.html.lang").equals(myLang)
+                    && data.length > 128; // a MOTD w/ less than 128 bytes indicateS necessity to update (see #7395)
         }
     }
 
diff --git a/src/org/openstreetmap/josm/io/CacheCustomContent.java b/src/org/openstreetmap/josm/io/CacheCustomContent.java
index dbb2ec3..5392b7b 100644
--- a/src/org/openstreetmap/josm/io/CacheCustomContent.java
+++ b/src/org/openstreetmap/josm/io/CacheCustomContent.java
@@ -64,7 +64,7 @@ public abstract class CacheCustomContent<T extends Throwable> {
      * This function serves as a comfort hook to perform additional checks if the cache is valid
      * @return True if the cached copy is still valid
      */
-    protected boolean isCacheValid() {
+    protected boolean isCacheValid(byte[] data) {
         return true;
     }
 
@@ -86,7 +86,7 @@ public abstract class CacheCustomContent<T extends Throwable> {
      */
     public byte[] updateIfRequired() throws T {
         if (Main.pref.getInteger("cache." + ident, 0) + updateInterval < new Date().getTime()/1000
-                || !isCacheValid())
+                || !isCacheValid(getData()))
             return updateForce();
         return getData();
     }
@@ -97,7 +97,7 @@ public abstract class CacheCustomContent<T extends Throwable> {
      */
     public String updateIfRequiredString() throws T {
         if (Main.pref.getInteger("cache." + ident, 0) + updateInterval < new Date().getTime()/1000
-                || !isCacheValid())
+                || !isCacheValid(getData()))
             return updateForceString();
         return getDataString();
     }
