Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/LabelCompositionStrategy.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/LabelCompositionStrategy.java	(revision 8972)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/LabelCompositionStrategy.java	(revision 8973)
@@ -8,4 +8,6 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.tools.LanguageInfo;
@@ -148,5 +150,6 @@
     }
 
-    public static class DeriveLabelFromNameTagsCompositionStrategy extends LabelCompositionStrategy {
+    public static class DeriveLabelFromNameTagsCompositionStrategy
+        extends LabelCompositionStrategy implements PreferenceChangedListener {
 
         /**
@@ -176,9 +179,4 @@
         /**
          * <p>Creates the strategy and initializes its name tags from the preferences.</p>
-         *
-         * <p><strong>Note:</strong> If the list of name tags in the preferences changes, strategy instances
-         * are not notified. It's up to the client to listen to preference changes and
-         * invoke {@link #initNameTagsFromPreferences()} accordingly.</p>
-         *
          */
         public DeriveLabelFromNameTagsCompositionStrategy() {
@@ -296,4 +294,11 @@
             return "{" + getClass().getSimpleName() +'}';
         }
+
+        @Override
+        public void preferenceChanged(PreferenceChangeEvent e) {
+            if (e.getKey() != null && e.getKey().startsWith("mappaint.name")) {
+                initNameTagsFromPreferences();
+            }
+        }
     }
 }
