Index: src/org/openstreetmap/josm/gui/IconToggleButton.java
===================================================================
--- src/org/openstreetmap/josm/gui/IconToggleButton.java	(revision 4666)
+++ src/org/openstreetmap/josm/gui/IconToggleButton.java	(working copy)
@@ -65,21 +65,28 @@
         }
     }
     
+    String getPreferenceKey() {
+        String s = (String) getSafeActionValue("toolbar");
+        if (s==null) {
+            if (getAction()!=null) s=getAction().getClass().getName();
+        }
+        return "sidetoolbar.hidden."+s;
+        
+    }
+    
     @Override
     public void applyButtonHiddenPreferences() {
-        String actionName = (String) getSafeActionValue(AbstractAction.NAME);
-        boolean hiddenFlag = Main.pref.getBoolean(actionName + ".itbutton_hidden", false);
+        boolean hiddenFlag = Main.pref.getBoolean(getPreferenceKey(), false);
         setVisible(!hiddenFlag);   
     }
 
     @Override
     public void setButtonHidden(boolean b) {
-        String actionName = (String) getSafeActionValue(AbstractAction.NAME);
         setVisible(!b);
         if (listener!=null) { // if someone wants to know about changes of visibility
             if (!b) listener.buttonShown(); else listener.buttonHidden();
         }
-        Main.pref.put(actionName + ".itbutton_hidden", b);
+        Main.pref.put(getPreferenceKey(), b);
     }
     
     @Override
