Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 4282)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 4283)
@@ -248,4 +248,6 @@
 
     private final TemplateEngineDataProvider dataProvider;
+    private final String text;
+
     public final Icon symbol;
     public final MarkerLayer parentLayer;
@@ -269,4 +271,19 @@
 
         this.dataProvider = dataProvider;
+        this.text = null;
+    }
+
+    public Marker(LatLon ll, String text, String iconName, MarkerLayer parentLayer, double time, double offset) {
+        setCoor(ll);
+
+        this.offset = offset;
+        this.time = time;
+        // /* ICON(markers/) */"Bridge"
+        // /* ICON(markers/) */"Crossing"
+        this.symbol = ImageProvider.getIfAvailable("markers",iconName);
+        this.parentLayer = parentLayer;
+
+        this.dataProvider = null;
+        this.text = text;
     }
 
@@ -344,14 +361,18 @@
      */
     public String getText() {
-        TemplateEntryProperty property = getTextTemplate();
-        if (property.getUpdateCount() != textVersion) {
-            TemplateEntry templateEntry = property.get();
-            StringBuilder sb = new StringBuilder();
-            templateEntry.appendText(sb, this);
-
-            cachedText = sb.toString();
-            textVersion = property.getUpdateCount();
-        }
-        return cachedText;
+        if (text != null)
+            return text;
+        else {
+            TemplateEntryProperty property = getTextTemplate();
+            if (property.getUpdateCount() != textVersion) {
+                TemplateEntry templateEntry = property.get();
+                StringBuilder sb = new StringBuilder();
+                templateEntry.appendText(sb, this);
+
+                cachedText = sb.toString();
+                textVersion = property.getUpdateCount();
+            }
+            return cachedText;
+        }
     }
 
