Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 6051)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 6052)
@@ -6,5 +6,4 @@
 import java.awt.AlphaComposite;
 import java.awt.Color;
-
 import java.awt.Dimension;
 import java.awt.Graphics;
@@ -57,4 +56,5 @@
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.PlayHeadMarker;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.AudioPlayer;
 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
@@ -818,12 +818,20 @@
          * that I switch layers and actions at the same time and it was annoying to mind the
          * order. This way it works as visual clue for new users */
-        for (AbstractButton b: Main.map.allMapModeButtons) {
+        for (final AbstractButton b: Main.map.allMapModeButtons) {
             MapMode mode = (MapMode)b.getAction();
             if (mode.layerIsSupported(layer)) {
                 Main.registerActionShortcut(mode, mode.getShortcut()); //fix #6876
-                b.setEnabled(true);
+                GuiHelper.runInEDTAndWait(new Runnable() {
+                    @Override public void run() {
+                        b.setEnabled(true);
+                    }
+                });
             } else {
                 Main.unregisterShortcut(mode.getShortcut());
-                b.setEnabled(false);
+                GuiHelper.runInEDTAndWait(new Runnable() {
+                    @Override public void run() {
+                        b.setEnabled(false);
+                    }
+                });
             }
         }
