Index: /trunk/src/org/openstreetmap/josm/gui/MapFrame.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 4584)
+++ /trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 4585)
@@ -486,5 +486,5 @@
         boolean modeChanged = false;
         if (mapMode == null || !mapMode.layerIsSupported(newLayer)) {
-            MapMode newMapMode = lastMapMode.get(newLayer);
+            MapMode newMapMode = getLastMapMode(newLayer);
             modeChanged = newMapMode != mapMode;
             if (newMapMode != null) {
@@ -503,4 +503,16 @@
     }
 
+    private MapMode getLastMapMode(Layer newLayer) {
+        MapMode mode = lastMapMode.get(newLayer);
+        if (mode == null) {
+            // if no action is selected - try to select default action
+            Action defaultMode = getDefaultButtonAction();
+            if (defaultMode instanceof MapMode & ((MapMode)defaultMode).layerIsSupported(newLayer)) {
+                mode = (MapMode) defaultMode;
+            }
+        }
+        return mode;
+    }
+
     @Override
     public void layerAdded(Layer newLayer) { }
