Index: /trunk/README
===================================================================
--- /trunk/README	(revision 5492)
+++ /trunk/README	(revision 5493)
@@ -15,9 +15,8 @@
 How to get Java Runtime Environment
 -----------------------------------
-You need JRE Version 1.6 (also called Java6), or later. 
+You need JRE Version 1.6 (also called Java 6), or later. 
 
-Microsoft Windows users should visit 
-http://www.oracle.com/technetwork/java/index.html 
-and download the latest Java6 executable for Windows systems.
+Microsoft Windows users should visit http://www.java.com 
+and download the latest Java executable for Windows systems.
 
 Linux users should visit http://www.oracle.com/technetwork/java/index.html
@@ -39,5 +38,5 @@
 not the bin).
 
-MacOS users just click on the .jar file icon.
+MacOS X users just click on the .jar file icon.
 
 =============================================================================
Index: /trunk/src/org/openstreetmap/josm/actions/AboutAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 5492)
+++ /trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 5493)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Version;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.tools.GBC;
@@ -43,5 +44,5 @@
 
     public void actionPerformed(ActionEvent e) {
-        JTabbedPane about = new JTabbedPane();
+        final JTabbedPane about = new JTabbedPane();
 
         Version version = Version.getInstance();
@@ -91,7 +92,11 @@
         about.addTab(tr("Plugins"), new JScrollPane(PluginHandler.getInfoPanel()));
 
-        about.setPreferredSize(new Dimension(500,300));
-
-        JOptionPane.showMessageDialog(Main.parent, about, tr("About JOSM..."),
+        // Intermediate panel to allow proper optionPane resizing
+        JPanel panel = new JPanel(new GridBagLayout());
+        panel.setPreferredSize(new Dimension(600, 300));
+        panel.add(about, GBC.std().fill());
+        
+        GuiHelper.prepareResizeableOptionPane(panel, panel.getPreferredSize());
+        JOptionPane.showMessageDialog(Main.parent, panel, tr("About JOSM..."),
                 JOptionPane.INFORMATION_MESSAGE, ImageProvider.get("logo"));
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 5492)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 5493)
@@ -7,5 +7,4 @@
 import java.awt.Color;
 import java.awt.Component;
-import java.awt.Dialog;
 import java.awt.Dimension;
 import java.awt.FlowLayout;
@@ -13,9 +12,6 @@
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
-import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.event.HierarchyEvent;
-import java.awt.event.HierarchyListener;
 import java.awt.event.MouseEvent;
 import java.io.IOException;
@@ -42,5 +38,4 @@
 import javax.swing.JTable;
 import javax.swing.JToolBar;
-import javax.swing.SwingUtilities;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
@@ -67,4 +62,5 @@
 import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -431,20 +427,7 @@
             public void actionPerformed(ActionEvent evt) {
                 final AddWMSLayerPanel p = new AddWMSLayerPanel();
-                // This code snippet allows to resize the JOptionPane (fix #6090)
-                p.addHierarchyListener(new HierarchyListener() {
-                    public void hierarchyChanged(HierarchyEvent e) {
-                        Window window = SwingUtilities.getWindowAncestor(p);
-                        if (window instanceof Dialog) {
-                            Dialog dialog = (Dialog)window;
-                            if (!dialog.isResizable()) {
-                                dialog.setResizable(true);
-                                dialog.setMinimumSize(new Dimension(250, 350));
-                            }
-                        }
-                    }
-                });
+                GuiHelper.prepareResizeableOptionPane(p, new Dimension(250, 350));
                 int answer = JOptionPane.showConfirmDialog(
-                        gui, p,
-                        tr("Add Imagery URL"),
+                        gui, p, tr("Add Imagery URL"),
                         JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
                 if (answer == JOptionPane.OK_OPTION) {
Index: /trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 5492)
+++ /trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 5493)
@@ -6,6 +6,11 @@
 import java.awt.Component;
 import java.awt.Container;
+import java.awt.Dialog;
+import java.awt.Dimension;
 import java.awt.Image;
 import java.awt.Toolkit;
+import java.awt.Window;
+import java.awt.event.HierarchyEvent;
+import java.awt.event.HierarchyListener;
 import java.awt.image.FilteredImageSource;
 import java.lang.reflect.InvocationTargetException;
@@ -104,3 +109,32 @@
         return new ImageIcon(getDisabledImage(icon.getImage()));
     }
+    
+    /**
+     * Attaches a {@code HierarchyListener} to the specified {@code Component} that
+     * will set its parent dialog resizeable. Use it before a call to JOptionPane#showXXXXDialog
+     * to make it resizeable.
+     * @param pane The component that will be displayed
+     * @param minDimension The minimum dimension that will be set for the dialog. Ignored if null
+     * @return {@code pane}
+     * @since 5493
+     */
+    public static final Component prepareResizeableOptionPane(final Component pane, final Dimension minDimension) {
+        if (pane != null) {
+            pane.addHierarchyListener(new HierarchyListener() {
+                public void hierarchyChanged(HierarchyEvent e) {
+                    Window window = SwingUtilities.getWindowAncestor(pane);
+                    if (window instanceof Dialog) {
+                        Dialog dialog = (Dialog)window;
+                        if (!dialog.isResizable()) {
+                            dialog.setResizable(true);
+                            if (minDimension != null) {
+                                dialog.setMinimumSize(minDimension);
+                            }
+                        }
+                    }
+                }
+            });
+        }
+        return pane;
+    }
 }
