Index: trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 3987)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 3992)
@@ -80,5 +80,5 @@
         Keyword textPos = c.get("text-position", null, Keyword.class);
         if (textPos == null || Utils.equal(textPos.val, "center")) {
-            text = TextElement.create(c, PaintColors.AREA_TEXT.get());
+            text = TextElement.create(c, PaintColors.AREA_TEXT.get(), true);
         }
         
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java	(revision 3987)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java	(revision 3992)
@@ -185,5 +185,5 @@
             Keyword textPos = c.get("text-position", null, Keyword.class);
             if (textPos == null || equal(textPos.val, "line")) {
-                text = TextElement.create(c, PaintColors.TEXT.get());
+                text = TextElement.create(c, PaintColors.TEXT.get(), false);
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/NodeElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/NodeElemStyle.java	(revision 3987)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/NodeElemStyle.java	(revision 3992)
@@ -177,9 +177,6 @@
         }
 
-        if (icon == null && symbol == null && !allowOnlyText)
-            return null;
-
         NodeTextElement text = null;
-        TextElement te = TextElement.create(c, DEFAULT_TEXT_COLOR);
+        TextElement te = TextElement.create(c, DEFAULT_TEXT_COLOR, symbol == null && icon == null);
         // optimization: if we neither have a symbol, nor an icon, nor a text element
         // we don't have to check for the remaining style properties and we don't
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java	(revision 3987)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java	(revision 3992)
@@ -80,9 +80,10 @@
      * @return the label composition strategy
      */
-    protected static LabelCompositionStrategy buildLabelCompositionStrategy(Cascade c){
+    protected static LabelCompositionStrategy buildLabelCompositionStrategy(Cascade c, boolean defaultAnnotate){
         Keyword textKW = c.get("text", null, Keyword.class, true);
         if (textKW == null) {
             String textKey = c.get("text", null, String.class);
-            if (textKey == null) return null;
+            if (textKey == null) 
+                return defaultAnnotate ? AUTO_LABEL_COMPOSITION_STRATEGY : null;
             return new TagLookupCompositionStrategy(textKey);
         } else if (textKW.val.equals("auto"))
@@ -102,8 +103,8 @@
      * @throws IllegalArgumentException thrown if {@code defaultTextColor} is null
      */
-    public static TextElement create(Cascade c, Color defaultTextColor)  throws IllegalArgumentException{
+    public static TextElement create(Cascade c, Color defaultTextColor, boolean defaultAnnotate)  throws IllegalArgumentException{
         CheckParameterUtil.ensureParameterNotNull(defaultTextColor);
 
-        LabelCompositionStrategy strategy = buildLabelCompositionStrategy(c);
+        LabelCompositionStrategy strategy = buildLabelCompositionStrategy(c, defaultAnnotate);
         Font font = ElemStyle.getFont(c);
 
