Index: trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 13852)
+++ trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 13853)
@@ -264,5 +264,5 @@
                 username = user.getName();
             }
-            lblUser.setDescription(username);
+            lblUser.setDescription(insertWbr(username), false);
             if (user != null && user != User.getAnonymous()) {
                 lblUser.setUrl(getUserUrl(username));
@@ -276,5 +276,5 @@
                 lblUser.setUrl(null);
             } else {
-                lblUser.setDescription(username);
+                lblUser.setDescription(insertWbr(username), false);
                 lblUser.setUrl(getUserUrl(username));
             }
@@ -293,4 +293,8 @@
     }
 
+    private static String insertWbr(String s) {
+        return Utils.escapeReservedCharactersHTML(s).replace("_", "_<wbr>");
+    }
+
     protected static void updateText(Changeset cs, String attr, JTextArea textArea, JLabel label, Changeset oppCs, JComponent container) {
         final String text = cs != null ? cs.get(attr) : null;
Index: trunk/src/org/openstreetmap/josm/gui/widgets/UrlLabel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/UrlLabel.java	(revision 13852)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/UrlLabel.java	(revision 13853)
@@ -13,4 +13,5 @@
 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
 import org.openstreetmap.josm.tools.OpenBrowser;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -102,6 +103,19 @@
      */
     public final void setDescription(String description) {
+        setDescription(description, true);
+    }
+
+    /**
+     * Sets the text part of the URL label. Defaults to the empty string if description is null.
+     *
+     * @param description the description
+     * @param escapeReservedCharacters if {@code true}, HTML reserved characters will be escaped
+     * @since 13853
+     */
+    public final void setDescription(String description, boolean escapeReservedCharacters) {
         this.description = description == null ? "" : description;
-        this.description = this.description.replace("&", "&amp;").replace(">", "&gt;").replace("<", "&lt;");
+        if (escapeReservedCharacters) {
+            this.description = Utils.escapeReservedCharactersHTML(this.description);
+        }
         refresh();
     }
