Index: src/org/openstreetmap/josm/gui/JMultilineLabel.java
===================================================================
--- src/org/openstreetmap/josm/gui/JMultilineLabel.java	(revision 2130)
+++ src/org/openstreetmap/josm/gui/JMultilineLabel.java	(working copy)
@@ -42,10 +42,12 @@
 
     public void setText(String text) {
         String old = this.text;
-        this.text = text;
+        // Remove HTML tags but interpret <br> as intended
+        this.text = text.replaceAll("<br/?>", "\n").replaceAll("</?[a-zA-Z]+/?>", "");
         firePropertyChange("text", old, this.text);
-        if ((old == null) ? text!=null : !old.equals(text))
+        if ((old == null) ? text!=null : !old.equals(text)) {
             morph();
+        }
     }
 
     public int getMaxWidth() {
@@ -58,8 +60,9 @@
         int old = this.maxWidth;
         this.maxWidth = maxWidth;
         firePropertyChange("maxWidth", old, this.maxWidth);
-        if (old !=  this.maxWidth)
+        if (old !=  this.maxWidth) {
             morph();
+        }
     }
 
     public boolean isJustified() {
@@ -70,18 +73,22 @@
         boolean old = this.justify;
         this.justify = justify;
         firePropertyChange("justified", old, this.justify);
-        if (old != this.justify)
+        if (old != this.justify) {
             repaint();
+        }
     }
 
+    @Override
     public Dimension getPreferredSize() {
         return paintOrGetSize(null, getMaxWidth());
     }
 
+    @Override
     public Dimension getMinimumSize() {
         return getPreferredSize();
     }
 
+    @Override
     protected void paintComponent(Graphics g) {
         super.paintComponent(g);
         paintOrGetSize((Graphics2D)g, getWidth());
@@ -97,7 +104,9 @@
             String[] lines = getText().split("\n");
             for(String line : lines) {
                 // Insert a space so new lines get rendered
-                if(line.length() == 0) line = " ";
+                if(line.length() == 0) {
+                    line = " ";
+                }
                 AttributedString as = new AttributedString(line);
                 as.addAttribute(TextAttribute.FONT, getFont());
                 AttributedCharacterIterator aci = as.getIterator();
@@ -105,10 +114,12 @@
                 float max = 0;
                 while (lbm.getPosition() < aci.getEndIndex()) {
                     TextLayout textLayout = lbm.nextLayout(width);
-                    if (g != null && isJustified() && textLayout.getVisibleAdvance() > 0.80 * width)
+                    if (g != null && isJustified() && textLayout.getVisibleAdvance() > 0.80 * width) {
                         textLayout = textLayout.getJustifiedLayout(width);
-                    if (g != null)
+                    }
+                    if (g != null) {
                         textLayout.draw(g, x, y + textLayout.getAscent());
+                    }
                     y += textLayout.getDescent() + textLayout.getLeading() + textLayout.getAscent();
                     max = Math.max(max, textLayout.getVisibleAdvance());
                 }
