Index: /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 10137)
+++ /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 10138)
@@ -20,4 +20,5 @@
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.regex.Pattern;
 
 import org.openstreetmap.josm.Main;
@@ -61,10 +62,4 @@
         putValue("toolbar", "help/showstatusreport");
         Main.toolbar.register(this);
-    }
-
-    private static void shortenParam(ListIterator<String> it, String[] param, String source, String target) {
-        if (source != null && target.length() < source.length() && param[1].startsWith(source)) {
-            it.set(param[0] + '=' + param[1].replace(source, target));
-        }
     }
 
@@ -120,4 +115,13 @@
             final String propJavaHome = System.getProperty("java.home");
             final String propJavaHomeAlt = "<java.home>";
+            final String prefDir = Main.pref.getPreferencesDirectory().toString();
+            final String prefDirAlt = "<josm.pref>";
+            final String userDataDir = Main.pref.getUserDataDirectory().toString();
+            final String userDataDirAlt = "<josm.userdata>";
+            final String userCacheDir = Main.pref.getCacheDirectory().toString();
+            final String userCacheDirAlt = "<josm.cache>";
+            final String userHomeDir = System.getProperty("user.home");
+            final String userHomeDirAlt = Main.isPlatformWindows() ? "%UserProfile%" : "${HOME}";
+
             // Build a new list of VM parameters to modify it below if needed (default implementation returns an UnmodifiableList instance)
             List<String> vmArguments = new ArrayList<>(ManagementFactory.getRuntimeMXBean().getInputArguments());
@@ -130,7 +134,16 @@
                         it.set(param[0]+"=xxx");
                     } else {
-                        // Shorten some parameters for readability concerns
-                        shortenParam(it, param, envJavaHome, envJavaHomeAlt);
-                        shortenParam(it, param, propJavaHome, propJavaHomeAlt);
+                        // Replace some paths for readability and privacy concerns
+                        String val = param[1];
+                        val = paramReplace(val, envJavaHome, envJavaHomeAlt);
+                        val = paramReplace(val, envJavaHome, envJavaHomeAlt);
+                        val = paramReplace(val, propJavaHome, propJavaHomeAlt);
+                        val = paramReplace(val, prefDir, prefDirAlt);
+                        val = paramReplace(val, userDataDir, userDataDirAlt);
+                        val = paramReplace(val, userCacheDir, userCacheDirAlt);
+                        val = paramReplace(val, userHomeDir, userHomeDirAlt);
+                        if (!val.equals(param[1])) {
+                            it.set(param[0] + '=' + val);
+                        }
                     }
                 } else if (value.startsWith("-X")) {
@@ -182,4 +195,9 @@
         }
         return set;
+    }
+
+    private static String paramReplace(String str, String target, String replacement) {
+        if (target == null) return str;
+        return str.replace(target, replacement);
     }
 
