Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7830)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7831)
@@ -550,10 +550,5 @@
             preferencesDirFile = new File(path).getAbsoluteFile();
         } else {
-            path = System.getenv("APPDATA");
-            if (path != null) {
-                preferencesDirFile = new File(path, "JOSM");
-            } else {
-                preferencesDirFile = new File(System.getProperty("user.home"), ".josm");
-            }
+            preferencesDirFile = Main.platform.getDefaultPrefDirectory();
         }
         return preferencesDirFile;
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHook.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 7830)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 7831)
@@ -127,3 +127,10 @@
      */
     public File getDefaultCacheDirectory();
+
+    /**
+     * Returns the platform-dependent default preferences directory.
+     * @return the platform-dependent default preferences directory
+     * @since 7831
+     */
+    public File getDefaultPrefDirectory();
 }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 7830)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 7831)
@@ -328,3 +328,8 @@
         return new File(System.getProperty("user.home")+"/Library/Caches", "JOSM");
     }
+
+    @Override
+    public File getDefaultPrefDirectory() {
+        return new File(System.getProperty("user.home")+"/Library/Preferences", "JOSM");
+    }
 }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 7830)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 7831)
@@ -375,3 +375,8 @@
         return new File(Main.pref.getPreferencesDirFile(), "cache");
     }
+
+    @Override
+    public File getDefaultPrefDirectory() {
+        return new File(System.getProperty("user.home"), ".josm");
+    }
 }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 7830)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 7831)
@@ -288,3 +288,8 @@
         return new File(System.getenv("LOCALAPPDATA")+"/JOSM", "cache");
     }
+
+    @Override
+    public File getDefaultPrefDirectory() {
+        return new File(System.getenv("APPDATA"), "JOSM");
+    }
 }
