Index: trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 8818)
+++ trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 8819)
@@ -95,8 +95,5 @@
     @Override
     public void actionPerformed(ActionEvent e) {
-        Layer sourceLayer = Main.main.getEditLayer();
-        if (sourceLayer == null)
-            return;
-        merge(sourceLayer);
+        merge(getSourceLayer());
     }
 
@@ -106,11 +103,17 @@
             @Override
             public void run() {
-                if (getEditLayer() == null) {
+                final Layer sourceLayer = getSourceLayer();
+                if (sourceLayer == null) {
                     setEnabled(false);
-                    return;
+                } else {
+                    final List<Layer> possibleMergeTargets = LayerListDialog.getInstance().getModel().getPossibleMergeTargets(sourceLayer);
+                    setEnabled(!possibleMergeTargets.isEmpty());
                 }
-                setEnabled(!LayerListDialog.getInstance().getModel().getPossibleMergeTargets(getEditLayer()).isEmpty());
             }
         });
+    }
+
+    protected Layer getSourceLayer() {
+        return Main.map != null ? Main.main.getActiveLayer() : null;
     }
 
