Index: /trunk/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java	(revision 17666)
+++ /trunk/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java	(revision 17667)
@@ -18,5 +18,5 @@
  * register another {@link PreferenceChangedListener} for the given preference key.
  */
-public class PreferenceToggleAction extends JosmAction implements PreferenceChangedListener {
+public class PreferenceToggleAction extends ToggleAction implements PreferenceChangedListener {
 
     private final JCheckBoxMenuItem checkbox;
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 17666)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 17667)
@@ -32,4 +32,5 @@
 
 import javax.swing.AbstractAction;
+import javax.swing.AbstractButton;
 import javax.swing.Action;
 import javax.swing.DefaultListCellRenderer;
@@ -68,6 +69,8 @@
 import org.openstreetmap.josm.actions.ParameterizedAction;
 import org.openstreetmap.josm.actions.ParameterizedActionDecorator;
+import org.openstreetmap.josm.actions.ToggleAction;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.imagery.ImageryLayerInfo;
+import org.openstreetmap.josm.gui.IconToggleButton;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapFrame;
@@ -1170,5 +1173,5 @@
                 control.addSeparator();
             } else {
-                final JButton b = addButtonAndShortcut(action);
+                final AbstractButton b = addButtonAndShortcut(action);
                 buttonActions.put(b, action);
 
@@ -1230,7 +1233,13 @@
     }
 
-    private JButton addButtonAndShortcut(ActionDefinition action) {
+    private AbstractButton addButtonAndShortcut(ActionDefinition action) {
         Action act = action.getParametrizedAction();
-        JButton b = control.add(act);
+        final AbstractButton b;
+        if (act instanceof ToggleAction) {
+            b = new IconToggleButton(act);
+            control.add(b);
+        } else {
+            b = control.add(act);
+        }
 
         Shortcut sc = null;
