Index: src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 6111 + patch#3)
+++ src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(working copy)
@@ -444,29 +444,34 @@
     /**
      * Displays text at specified position including its halo, if applicable.
      * 
-     * @param gv Text's glyphs to display. If {@code null}, use text from {@code s} instead.
-     * @param s text to display if {@code gv} is {@code null}
+     * @param s text to display
      * @param x X position
      * @param y Y position
      * @param disabled {@code true} if element is disabled (filtered out)
      * @param text text style to use
      */
-    private void displayText(GlyphVector gv, String s, int x, int y, boolean disabled, TextElement text) {
+    private void displayText(String s, int x, int y, boolean disabled, TextElement text) {
+        FontRenderContext frc = g.getFontRenderContext();
+        GlyphVector gv = text.font.createGlyphVector(frc, s);
+        displayText(gv, x, y, disabled, text);
+    }
+    
+    /**
+     * Displays text at specified position including its halo, if applicable.
+     * 
+     * @param gv text's glyphs to display
+     * @param x X position
+     * @param y Y position
+     * @param disabled {@code true} if element is disabled (filtered out)
+     * @param text text style to use
+     */
+    private void displayText(GlyphVector gv, int x, int y, boolean disabled, TextElement text) {
         if (isInactiveMode || disabled) {
             g.setColor(inactiveColor);
-            if (gv != null) {
-                g.drawGlyphVector(gv, x, y);
-            } else {
-                g.setFont(text.font);
-                g.drawString(s, x, y);
-            }
+            g.drawGlyphVector(gv, x, y);
         } else if (text.haloRadius != null) {
             g.setStroke(new BasicStroke(2*text.haloRadius, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND));
             g.setColor(text.haloColor);
-            if (gv == null) {
-                FontRenderContext frc = g.getFontRenderContext();
-                gv = text.font.createGlyphVector(frc, s);
-            }
             Shape textOutline = gv.getOutline(x, y);
             g.draw(textOutline);
             g.setStroke(new BasicStroke());
@@ -474,12 +479,7 @@
             g.fill(textOutline);
         } else {
             g.setColor(text.color);
-            if (gv != null) {
-                g.drawGlyphVector(gv, x, y);
-            } else {
-                g.setFont(text.font);
-                g.drawString(s, x, y);
-            }
+            g.drawGlyphVector(gv, x, y);
         }
     }
     
@@ -544,7 +544,7 @@
                 Font defaultFont = g.getFont();
                 int x = (int)(centeredNBounds.getMinX() - nb.getMinX());
                 int y = (int)(centeredNBounds.getMinY() - nb.getMinY());
-                displayText(null, name, x, y, osm.isDisabled(), text);
+                displayText(name, x, y, osm.isDisabled(), text);
                 g.setFont(defaultFont);
             }
         }
@@ -623,7 +623,7 @@
                 y += box.y + box.height + metrics.getAscent() + 2;
             } else throw new AssertionError();
         }
-        displayText(null, s, x, y, n.isDisabled(), text);
+        displayText(s, x, y, n.isDisabled(), text);
         g.setFont(defaultFont);
     }
 
@@ -1169,7 +1169,7 @@
                 gv.setGlyphTransform(i, trfm);
             }
         }
-        displayText(gv, null, 0, 0, way.isDisabled(), text);
+        displayText(gv, 0, 0, way.isDisabled(), text);
     }
 
     /**
