Index: trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 3236)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 3237)
@@ -588,6 +588,4 @@
                     return;
                 Layer layer = model.getLayer(index);
-                String current = Main.pref.get("marker.show "+layer.getName(),"show");
-                Main.pref.put("marker.show "+layer.getName(), current.equalsIgnoreCase("show") ? "hide" : "show");
                 layer.toggleVisible();
             }
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ButtonMarker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ButtonMarker.java	(revision 3236)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ButtonMarker.java	(revision 3237)
@@ -41,7 +41,7 @@
     }
 
-    @Override public void paint(Graphics g, MapView mv, boolean mousePressed, String show) {
-        if (! show.equalsIgnoreCase("show")) {
-            super.paint(g, mv, mousePressed, show);
+    @Override public void paint(Graphics g, MapView mv, boolean mousePressed, boolean showTextOrIcon) {
+        if (!showTextOrIcon) {
+            super.paint(g, mv, mousePressed, showTextOrIcon);
             return;
         }
@@ -62,6 +62,7 @@
         r.grow((inset.top+inset.bottom)/2, (inset.left+inset.right)/2);
         b.paintBorder(mv, g, r.x, r.y, r.width, r.height);
-        if ((text != null) && (show.equalsIgnoreCase("show")) && Main.pref.getBoolean("marker.buttonlabels", true))
+        if ((text != null) && showTextOrIcon && Main.pref.getBoolean("marker.buttonlabels", true)) {
             g.drawString(text, screen.x+4, screen.y+2);
+        }
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 3236)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 3237)
@@ -178,7 +178,7 @@
      * @param mousePressed true if the left mouse button is pressed
      */
-    public void paint(Graphics g, MapView mv, boolean mousePressed, String show) {
+    public void paint(Graphics g, MapView mv, boolean mousePressed, boolean showTextOrIcon) {
         Point screen = mv.getPoint(getEastNorth());
-        if (symbol != null && show.equalsIgnoreCase("show")) {
+        if (symbol != null && showTextOrIcon) {
             symbol.paintIcon(mv, g, screen.x-symbol.getIconWidth()/2, screen.y-symbol.getIconHeight()/2);
         } else {
@@ -187,5 +187,5 @@
         }
 
-        if ((text != null) && (show.equalsIgnoreCase("show"))) {
+        if ((text != null) && showTextOrIcon) {
             g.drawString(text, screen.x+4, screen.y+2);
         }
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 3236)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 3237)
@@ -155,5 +155,5 @@
 
     @Override public void paint(Graphics2D g, MapView mv, Bounds box) {
-        String mkrTextShow = Main.pref.get("marker.show "+getName(), "show");
+        boolean showTextOrIcon = isTextOrIconShown();
         g.setColor(getColor(getName()));
 
@@ -163,5 +163,5 @@
             for (Marker mkr : data) {
                 if (mousePos != null && mkr.containsPoint(mousePos)) {
-                    mkr.paint(g, mv, mousePressedTmp, mkrTextShow);
+                    mkr.paint(g, mv, mousePressedTmp, showTextOrIcon);
                     mousePressedTmp = false;
                 }
@@ -169,5 +169,5 @@
         } else {
             for (Marker mkr : data) {
-                mkr.paint(g, mv, false, mkrTextShow);
+                mkr.paint(g, mv, false, showTextOrIcon);
             }
         }
@@ -284,5 +284,5 @@
         components.add(new JMenuItem(LayerListDialog.getInstance().createShowHideLayerAction(this)));
         JCheckBoxMenuItem showMarkerTextItem = new JCheckBoxMenuItem(new ShowHideMarkerText(this));
-        showMarkerTextItem.setState(isTextShown());
+        showMarkerTextItem.setState(isTextOrIconShown());
         components.add(showMarkerTextItem);
         components.add(new JMenuItem(LayerListDialog.getInstance().createDeleteLayerAction(this)));
@@ -452,7 +452,7 @@
     }
 
-    private boolean isTextShown() {
+    private boolean isTextOrIconShown() {
         String current = Main.pref.get("marker.show "+getName(),"show");
-        return current.equalsIgnoreCase("show");
+        return "show".equalsIgnoreCase(current);
     }
 
@@ -469,5 +469,5 @@
 
         public void actionPerformed(ActionEvent e) {
-            Main.pref.put("marker.show "+layer.getName(), layer.isTextShown() ? "hide" : "show");
+            Main.pref.put("marker.show "+layer.getName(), layer.isTextOrIconShown() ? "hide" : "show");
             Main.map.mapView.repaint();
         }
