Index: trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 6039)
+++ trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 6040)
@@ -154,11 +154,10 @@
      */
     public String findSummaryDocumentation() {
-        String result = "";
-        for (int i = 0; i < downloadTasks.size(); i++) {
-            Class<? extends DownloadTask> taskClass = downloadTasks.get(i);
+        String result = "<table>";
+        for (Class<? extends DownloadTask> taskClass : downloadTasks) {
             if (taskClass != null) {
                 try {
                     DownloadTask task = taskClass.getConstructor().newInstance();
-                    result += "<br/>" + task.acceptsDocumentationSummary();
+                    result += task.acceptsDocumentationSummary();
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -166,4 +165,5 @@
             }
         }
+        result += "</table>";
         return result;
     }
@@ -187,7 +187,7 @@
         } else {
             final String details = findSummaryDocumentation();    // Explain what patterns are supported
-            HelpAwareOptionPane.showMessageDialogInEDT(Main.parent, tr(
-                    "<html><p>Cannot open URL ''{0}''<br/>The following download tasks accept the URL patterns shown:<br/>{1}</p></html>",
-                    url, details), tr("Download Location"), JOptionPane.ERROR_MESSAGE, HelpUtil.ht("/Action/OpenLocation"));
+            HelpAwareOptionPane.showMessageDialogInEDT(Main.parent, "<html><p>" + tr(
+                    "Cannot open URL ''{0}''<br>The following download tasks accept the URL patterns shown:<br>{1}",
+                    url, details) + "</p></html>", tr("Download Location"), JOptionPane.ERROR_MESSAGE, HelpUtil.ht("/Action/OpenLocation"));
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java	(revision 6039)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java	(revision 6040)
@@ -59,4 +59,5 @@
                 buf.append("<li>");
                 buf.append(XmlWriter.encode(pattern));
+                buf.append("</li>");
             } 
             buf.append("</ul>");
Index: trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java	(revision 6039)
+++ trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java	(revision 6040)
@@ -21,8 +21,8 @@
 import javax.swing.JOptionPane;
 import javax.swing.KeyStroke;
-import javax.swing.SwingUtilities;
 
 import org.openstreetmap.josm.gui.help.HelpBrowser;
 import org.openstreetmap.josm.gui.help.HelpUtil;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -284,5 +284,5 @@
      */
     static public void showMessageDialogInEDT(final Component parentComponent, final Object msg, final String title, final int messageType, final String helpTopic)  {
-        SwingUtilities.invokeLater(new Runnable() {
+        GuiHelper.runInEDT(new Runnable() {
             public void run() {
                 showOptionDialog(parentComponent, msg, title, messageType, null, null, null, helpTopic);
Index: trunk/src/org/openstreetmap/josm/gui/help/HelpBrowser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/help/HelpBrowser.java	(revision 6039)
+++ trunk/src/org/openstreetmap/josm/gui/help/HelpBrowser.java	(revision 6040)
@@ -41,5 +41,4 @@
 import javax.swing.text.html.HTML.Tag;
 import javax.swing.text.html.HTMLDocument;
-import javax.swing.text.html.HTMLEditorKit;
 import javax.swing.text.html.StyleSheet;
 
@@ -49,4 +48,5 @@
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
+import org.openstreetmap.josm.gui.widgets.JosmHTMLEditorKit;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.LanguageInfo.LocaleType;
@@ -168,5 +168,5 @@
     protected void build() {
         help = new JosmEditorPane();
-        HTMLEditorKit kit = new HTMLEditorKit();
+        JosmHTMLEditorKit kit = new JosmHTMLEditorKit();
         kit.setStyleSheet(buildStyleSheet());
         help.setEditorKit(kit);
Index: trunk/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java	(revision 6039)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java	(revision 6040)
@@ -17,12 +17,13 @@
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
-import javax.swing.text.html.HTMLEditorKit;
 import javax.swing.text.html.StyleSheet;
 
 import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
+import org.openstreetmap.josm.gui.widgets.JosmHTMLEditorKit;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.tools.ImageProvider;
 
+// FIXME this class should extend HtmlPanel instead (duplicated code in here)
 public class UploadParameterSummaryPanel extends JPanel implements HyperlinkListener, PropertyChangeListener{
     private UploadStrategySpecification spec = new UploadStrategySpecification();
@@ -127,5 +128,5 @@
         ss.addRule(rule);
         ss.addRule("a {text-decoration: underline; color: blue}");
-        HTMLEditorKit kit = new HTMLEditorKit();
+        JosmHTMLEditorKit kit = new JosmHTMLEditorKit();
         kit.setStyleSheet(ss);
         jepMessage.setEditorKit(kit);
Index: trunk/src/org/openstreetmap/josm/gui/widgets/HtmlPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/HtmlPanel.java	(revision 6039)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/HtmlPanel.java	(revision 6040)
@@ -9,5 +9,4 @@
 import javax.swing.JPanel;
 import javax.swing.UIManager;
-import javax.swing.text.html.HTMLEditorKit;
 import javax.swing.text.html.StyleSheet;
 
@@ -19,5 +18,5 @@
  * blue and they are underlined. There is also a CSS rule for the HTML tag &lt;strong&gt;
  * configured.
- *
+ * @since 2688
  */
 public class HtmlPanel extends JPanel {
@@ -50,5 +49,5 @@
         ss.addRule("a {text-decoration: underline; color: blue}");
         ss.addRule("ul {margin-left: 1cm; list-style-type: disc}");
-        HTMLEditorKit kit = new HTMLEditorKit();
+        JosmHTMLEditorKit kit = new JosmHTMLEditorKit();
         kit.setStyleSheet(ss);
         jepMessage.setEditorKit(kit);
Index: trunk/src/org/openstreetmap/josm/gui/widgets/JosmHTMLEditorKit.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/JosmHTMLEditorKit.java	(revision 6040)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/JosmHTMLEditorKit.java	(revision 6040)
@@ -0,0 +1,50 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.widgets;
+
+import javax.swing.text.html.HTMLEditorKit;
+import javax.swing.text.html.StyleSheet;
+
+/**
+ * A subclass of {@link HTMLEditorKit} that fixes an uncommon design choice that shares the set stylesheet between all instances.
+ * This class stores a single stylesheet per instance, as it should have be done by Sun in the first place.
+ * @since 6040
+ */
+public class JosmHTMLEditorKit extends HTMLEditorKit {
+
+    /**
+     * Constructs a new {@code JosmHTMLEditorKit}
+     */
+    public JosmHTMLEditorKit() {
+    }
+    
+    protected StyleSheet ss = super.getStyleSheet();
+
+    /**
+     * Set the set of styles to be used to render the various HTML elements.
+     * These styles are specified in terms of CSS specifications. 
+     * Each document produced by the kit will have a copy of the sheet which
+     * it can add the document specific styles to. 
+     * 
+     * Unlike the base implementation, the StyleSheet specified is NOT shared 
+     * by all HTMLEditorKit instances, to provide a finer granularity.
+
+     * @see #getStyleSheet
+     */
+    @Override
+    public void setStyleSheet(StyleSheet s) {
+        ss = s;
+    }
+
+    /**
+     * Get the set of styles currently being used to render the HTML elements.
+     *  
+     * Unlike the base implementation, the StyleSheet specified is NOT shared 
+     * by all HTMLEditorKit instances, to provide a finer granularity.
+     * 
+     * @see #setStyleSheet
+     */
+    @Override
+    public StyleSheet getStyleSheet() {
+        return ss;
+    }
+}
