Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 14822)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 14823)
@@ -12,8 +12,8 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 
 import javax.swing.ImageIcon;
@@ -79,13 +79,19 @@
         // will make gui for it so I'm keeping it here
 
-        private static final Map<String, TemplateEntryProperty> CACHE = new ConcurrentHashMap<>();
+        private static final Map<String, TemplateEntryProperty> CACHE = new HashMap<>();
 
         public static TemplateEntryProperty forMarker(String layerName) {
             String key = "draw.rawgps.layer.wpt.pattern";
             if (layerName != null) {
-                return CACHE.computeIfAbsent(key + '.' + layerName, k -> new TemplateEntryProperty(k, "", forMarker(null)));
-            } else {
-                return CACHE.computeIfAbsent(key, k -> new TemplateEntryProperty(k, LABEL_PATTERN_AUTO, null));
-            }
+                key += '.' + layerName;
+            }
+            TemplateEntryProperty result = CACHE.get(key);
+            if (result == null) {
+                String defaultValue = layerName == null ? LABEL_PATTERN_AUTO : "";
+                TemplateEntryProperty parent = layerName == null ? null : forMarker(null);
+                result = new TemplateEntryProperty(key, defaultValue, parent);
+                CACHE.put(key, result);
+            }
+            return result;
         }
 
@@ -93,10 +99,14 @@
             String key = "draw.rawgps.layer.audiowpt.pattern";
             if (layerName != null) {
-                return CACHE.computeIfAbsent(key + '.' + layerName, k ->
-                        new TemplateEntryProperty(k, "", forAudioMarker(null)));
-            } else {
-                return CACHE.computeIfAbsent(key, k ->
-                        new TemplateEntryProperty(k, "?{ '{name}' | '{desc}' | '{" + MARKER_FORMATTED_OFFSET + "}' }", null));
-            }
+                key += '.' + layerName;
+            }
+            TemplateEntryProperty result = CACHE.get(key);
+            if (result == null) {
+                String defaultValue = layerName == null ? "?{ '{name}' | '{desc}' | '{" + Marker.MARKER_FORMATTED_OFFSET + "}' }" : "";
+                TemplateEntryProperty parent = layerName == null ? null : forAudioMarker(null);
+                result = new TemplateEntryProperty(key, defaultValue, parent);
+                CACHE.put(key, result);
+            }
+            return result;
         }
 
