Index: /trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 12549)
+++ /trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 12550)
@@ -87,9 +87,11 @@
 
         Node targetNode = selectTargetNode(selectedNodes);
-        Node targetLocationNode = selectTargetLocationNode(selectedNodes);
-        Command cmd = mergeNodes(Main.getLayerManager().getEditLayer(), selectedNodes, targetNode, targetLocationNode);
-        if (cmd != null) {
-            Main.main.undoRedo.add(cmd);
-            Main.getLayerManager().getEditLayer().data.setSelected(targetNode);
+        if (targetNode != null) {
+            Node targetLocationNode = selectTargetLocationNode(selectedNodes);
+            Command cmd = mergeNodes(Main.getLayerManager().getEditLayer(), selectedNodes, targetNode, targetLocationNode);
+            if (cmd != null) {
+                Main.main.undoRedo.add(cmd);
+                Main.getLayerManager().getEditLayer().data.setSelected(targetNode);
+            }
         }
     }
@@ -265,8 +267,10 @@
         }
 
-        Command cmd = mergeNodes(layer, nodes, target, targetLocationNode);
-        if (cmd != null) {
-            Main.main.undoRedo.add(cmd);
-            layer.data.setSelected(target);
+        if (target != null) {
+            Command cmd = mergeNodes(layer, nodes, target, targetLocationNode);
+            if (cmd != null) {
+                Main.main.undoRedo.add(cmd);
+                layer.data.setSelected(target);
+            }
         }
     }
Index: /trunk/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java	(revision 12549)
+++ /trunk/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java	(revision 12550)
@@ -684,10 +684,12 @@
             } // else: keep currentLayer and tileProjection as is
         }
-        this.currentTileMatrixSet = this.currentLayer.tileMatrixSet;
-        Collection<Double> scales = new ArrayList<>(currentTileMatrixSet.tileMatrix.size());
-        for (TileMatrix tileMatrix : currentTileMatrixSet.tileMatrix) {
-            scales.add(tileMatrix.scaleDenominator * 0.28e-03);
-        }
-        this.nativeScaleList = new ScaleList(scales);
+        if (this.currentLayer != null) {
+            this.currentTileMatrixSet = this.currentLayer.tileMatrixSet;
+            Collection<Double> scales = new ArrayList<>(currentTileMatrixSet.tileMatrix.size());
+            for (TileMatrix tileMatrix : currentTileMatrixSet.tileMatrix) {
+                scales.add(tileMatrix.scaleDenominator * 0.28e-03);
+            }
+            this.nativeScaleList = new ScaleList(scales);
+        }
         this.crsScale = getTileSize() * 0.28e-03 / this.tileProjection.getMetersPerUnit();
     }
