Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 4414)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 4415)
@@ -70,15 +70,29 @@
         Pair<StyleList, Range> p = getImpl(osm, scale, nc);
         if (osm instanceof Node && isDefaultNodes()) {
-            boolean hasNonModifier = false;
-            for (ElemStyle s : p.a) {
-                if (!s.isModifier) {
-                    hasNonModifier = true;
-                    break;
-                }
-            }
-            if (!hasNonModifier) {
-                p.a = new StyleList(p.a, NodeElemStyle.SIMPLE_NODE_ELEMSTYLE);
-                if (BoxTextElemStyle.SIMPLE_NODE_TEXT_ELEMSTYLE.text.labelCompositionStrategy.compose(osm) != null) {
-                    p.a = new StyleList(p.a, BoxTextElemStyle.SIMPLE_NODE_TEXT_ELEMSTYLE);
+            if (p.a.isEmpty()) {
+                if (TextElement.AUTO_LABEL_COMPOSITION_STRATEGY.compose(osm) != null) {
+                    p.a = NodeElemStyle.DEFAULT_NODE_STYLELIST_TEXT;
+                } else {
+                    p.a = NodeElemStyle.DEFAULT_NODE_STYLELIST;
+                }
+            } else {
+                boolean hasNonModifier = false;
+                boolean hasText = false;
+                for (ElemStyle s : p.a) {
+                    if (s instanceof BoxTextElemStyle) {
+                        hasText = true;
+                    } else {
+                        if (!s.isModifier) {
+                            hasNonModifier = true;
+                        }
+                    }
+                }
+                if (!hasNonModifier) {
+                    p.a = new StyleList(p.a, NodeElemStyle.SIMPLE_NODE_ELEMSTYLE);
+                    if (!hasText) {
+                        if (TextElement.AUTO_LABEL_COMPOSITION_STRATEGY.compose(osm) != null) {
+                            p.a = new StyleList(p.a, BoxTextElemStyle.SIMPLE_NODE_TEXT_ELEMSTYLE);
+                        }
+                    }
                 }
             }
@@ -93,6 +107,5 @@
             if (!hasProperLineStyle) {
                 AreaElemStyle area = Utils.find(p.a, AreaElemStyle.class);
-                LineElemStyle line = null;
-                line = (area == null ? LineElemStyle.UNTAGGED_WAY : LineElemStyle.createSimpleLineStyle(area.color, true));
+                LineElemStyle line = area == null ? LineElemStyle.UNTAGGED_WAY : LineElemStyle.createSimpleLineStyle(area.color, true);
                 p.a = new StyleList(p.a, line);
             }
@@ -308,4 +321,6 @@
                     sl.add(nodeStyle);
                     addIfNotNull(sl, BoxTextElemStyle.create(env, nodeStyle.getBox()));
+                } else {
+                    addIfNotNull(sl, BoxTextElemStyle.create(env, NodeElemStyle.SIMPLE_NODE_ELEMSTYLE.getBox()));
                 }
             } else if (osm instanceof Relation) {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/NodeElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/NodeElemStyle.java	(revision 4414)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/NodeElemStyle.java	(revision 4415)
@@ -19,4 +19,5 @@
 import org.openstreetmap.josm.data.osm.visitor.paint.MapPainter;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.IconReference;
+import org.openstreetmap.josm.gui.mappaint.StyleCache.StyleList;
 import org.openstreetmap.josm.tools.Pair;
 import org.openstreetmap.josm.tools.Utils;
@@ -91,4 +92,7 @@
         if (SIMPLE_NODE_ELEMSTYLE == null) throw new AssertionError();
     }
+
+    public static final StyleList DEFAULT_NODE_STYLELIST = new StyleList(NodeElemStyle.SIMPLE_NODE_ELEMSTYLE);
+    public static final StyleList DEFAULT_NODE_STYLELIST_TEXT = new StyleList(NodeElemStyle.SIMPLE_NODE_ELEMSTYLE, BoxTextElemStyle.SIMPLE_NODE_TEXT_ELEMSTYLE);
 
     protected NodeElemStyle(Cascade c, ImageIcon icon, Integer iconAlpha, Symbol symbol) {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java	(revision 4414)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java	(revision 4415)
@@ -20,5 +20,5 @@
  */
 public class TextElement {
-    static private final LabelCompositionStrategy AUTO_LABEL_COMPOSITION_STRATEGY = new DeriveLabelFromNameTagsCompositionStrategy();
+    static public final LabelCompositionStrategy AUTO_LABEL_COMPOSITION_STRATEGY = new DeriveLabelFromNameTagsCompositionStrategy();
 
     /** the strategy for building the actual label value for a given a {@link OsmPrimitive}.
