Index: src/org/openstreetmap/josm/actions/AboutAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/AboutAction.java	(revision 14679)
+++ src/org/openstreetmap/josm/actions/AboutAction.java	(working copy)
@@ -2,6 +2,8 @@
 package org.openstreetmap.josm.actions;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.Utils.getSystemEnv;
+import static org.openstreetmap.josm.tools.Utils.getSystemProperty;
 
 import java.awt.Color;
 import java.awt.Dimension;
@@ -16,7 +18,10 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 
+import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -37,6 +42,7 @@
 import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.OpenBrowser;
+import org.openstreetmap.josm.tools.PlatformManager;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -112,6 +118,24 @@
         info.add(logos, GBC.eol().insets(0, 10, 0, 0));
         info.add(GBC.glue(0, 5), GBC.eol());
 
+        final String envJavaHome = getSystemEnv("JAVA_HOME");
+        final String envJavaHomeAlt = PlatformManager.isPlatformWindows() ? "%JAVA_HOME%" : "${JAVA_HOME}";
+        final String propJavaHome = getSystemProperty("java.home");
+        final String propJavaHomeAlt = "<java.home>";
+        final String prefDir = Config.getDirs().getPreferencesDirectory(false).toString();
+        final String prefDirAlt = "<josm.pref>";
+        final String userDataDir = Config.getDirs().getUserDataDirectory(false).toString();
+        final String userDataDirAlt = "<josm.userdata>";
+        final String userCacheDir = Config.getDirs().getCacheDirectory(false).toString();
+        final String userCacheDirAlt = "<josm.cache>";
+
+        JPanel inst = new JPanel(new GridBagLayout());
+        addInstLine(inst, envJavaHomeAlt, envJavaHome);
+        addInstLine(inst, propJavaHomeAlt, propJavaHome);
+        addInstLine(inst, prefDirAlt, prefDir);
+        addInstLine(inst, userDataDirAlt, userDataDir);
+        addInstLine(inst, userCacheDirAlt, userCacheDir);
+
         about.addTab(tr("Info"), info);
         about.addTab(tr("Readme"), createScrollPane(readme));
         about.addTab(tr("Revision"), createScrollPane(revision));
@@ -118,6 +142,7 @@
         about.addTab(tr("Contribution"), createScrollPane(contribution));
         about.addTab(tr("License"), createScrollPane(license));
         about.addTab(tr("Plugins"), new JScrollPane(PluginHandler.getInfoPanel()));
+        about.addTab(tr("Installation Details"), inst);
 
         // Get the list of Launchpad contributors using customary msgid “translator-credits”
         String translators = tr("translator-credits");
@@ -133,15 +158,43 @@
         panel.add(about, GBC.std().fill());
 
         GuiHelper.prepareResizeableOptionPane(panel, panel.getPreferredSize());
-        int ret = new ExtendedDialog(MainApplication.getMainFrame(), tr("About JOSM..."), tr("OK"), tr("Report bug"))
-            .setButtonIcons("ok", "bug")
-            .setContent(panel, false)
-            .showDialog().getValue();
+        ExtendedDialog dlg = new ExtendedDialog(MainApplication.getMainFrame(), tr("About JOSM..."), tr("OK"), tr("Report bug"));
+        int ret = dlg.setButtonIcons("ok", "bug")
+                .setContent(panel, false)
+                .showDialog().getValue();
         if (2 == ret) {
             MainApplication.getMenu().reportbug.actionPerformed(null);
         }
+        GuiHelper.destroyComponents(panel, false);
+        dlg.dispose();
     }
 
+    private static class OpenDirAction extends AbstractAction {
+        final String dir;
+
+        OpenDirAction(String dir) {
+            super();
+
+            this.dir = dir;
+        }
+
+        @Override
+        public void actionPerformed(ActionEvent e) {
+            new JFileChooser(dir).showOpenDialog(null);
+        }
+    }
+
+    private void addInstLine(JPanel inst, String symbol, String dir) {
+        inst.add(new JLabel(symbol), GBC.std());
+        inst.add(GBC.glue(5, 0), GBC.std());
+        inst.add(new JLabel(dir), GBC.std().fill(GBC.HORIZONTAL));
+        JButton btn = new JButton(tr("open"));
+        btn.setAction(new OpenDirAction(dir));
+        btn.setToolTipText(tr("Open directory"));
+        btn.setIcon(ImageProvider.get("open", ImageProvider.ImageSizes.SMALLICON));
+        inst.add(btn, GBC.eol());
+    }
+
     private static JLabel createImageLink(String tooltip, String icon, final String link) {
         JLabel label = new JLabel(ImageProvider.get("dialogs/about", icon, ImageSizes.LARGEICON));
         label.setToolTipText(tooltip);
Index: src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 14679)
+++ src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(working copy)
@@ -241,7 +241,6 @@
 
         String val = param;
         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);
