Index: trunk/src/org/openstreetmap/josm/io/CachedFile.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 19208)
+++ trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 19211)
@@ -485,6 +485,8 @@
 
         String a = urlStr.replaceAll("[^A-Za-z0-9_.-]", "_");
-        if (a.length() > 120) {
-            a = a.substring(0, 100) + "_" + Utils.md5Hex(urlStr);
+        /* size 11: prefix mirror_ and suffix .tmp */
+        Integer maxFileLength = Config.getPref().getInt("cache.filename.maxlength", 140)-11;
+        if (a.length() > maxFileLength) {
+            a = a.substring(0, maxFileLength-33) + "_" + Utils.md5Hex(urlStr);
         }
         String localPath = "mirror_" + a;
