Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7828)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7829)
@@ -595,5 +595,5 @@
                 cacheDirFile = new File(path);
             } else {
-                cacheDirFile = new File(getPreferencesDirFile(), "cache");
+                cacheDirFile = Main.platform.getDefaultCacheDirectory();
             }
         }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHook.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 7828)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 7829)
@@ -120,3 +120,10 @@
     public boolean setupHttpsCertificate(String entryAlias, KeyStore.TrustedCertificateEntry trustedCert)
             throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException;
+
+    /**
+     * Returns the platform-dependent default cache directory.
+     * @return the platform-dependent default cache directory
+     * @since 7829
+     */
+    public File getDefaultCacheDirectory();
 }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 7828)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 7829)
@@ -323,3 +323,8 @@
         return System.getProperty("os.name") + " " + System.getProperty("os.version");
     }
+
+    @Override
+    public File getDefaultCacheDirectory() {
+        return new File(System.getProperty("user.home")+"/Library/Caches", "JOSM");
+    }
 }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 7828)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 7829)
@@ -370,3 +370,8 @@
         return false;
     }
+
+    @Override
+    public File getDefaultCacheDirectory() {
+        return new File(Main.pref.getPreferencesDirFile(), "cache");
+    }
 }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 7828)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 7829)
@@ -283,3 +283,8 @@
         return true;
     }
+
+    @Override
+    public File getDefaultCacheDirectory() {
+        return new File(System.getenv("LOCALAPPDATA")+"/JOSM", "cache");
+    }
 }
