Index: src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4453)
+++ src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(working copy)
@@ -709,7 +709,7 @@
                 } else  if (getModel().getSelectedLayers().size() > 1) {
                     Layer firstLayer = getModel().getSelectedLayers().get(0);
                     for (Layer l: getModel().getSelectedLayers()) {
-                        if (l != firstLayer && !l.isMergable(firstLayer)) {
+                        if (l != firstLayer && (!l.isMergable(firstLayer) || !firstLayer.isMergable(l))) {
                             setEnabled(false);
                             return;
                         }
@@ -1286,7 +1286,7 @@
                 if (source == target) {
                     continue;
                 }
-                if (target.isMergable(source)) {
+                if (target.isMergable(source) && source.isMergable(target)) {
                     targets.add(target);
                 }
             }
