Index: trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(revision 16998)
+++ trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(revision 17003)
@@ -308,14 +308,9 @@
     private static void showErrors(List<TestError> errors) {
         if (!errors.isEmpty()) {
-            StringBuilder sb = new StringBuilder();
-            Set<String> errorMessages = new LinkedHashSet<>();
-            errors.forEach(e-> errorMessages.add(e.getMessage()));
-            Iterator<String> iter = errorMessages.iterator();
-            while (iter.hasNext()) {
-                sb.append(iter.next());
-                if (iter.hasNext())
-                    sb.append('\n');
-            }
-            GuiHelper.runInEDT(() -> new Notification(sb.toString()).setIcon(JOptionPane.INFORMATION_MESSAGE).show());
+            String errorMessages = errors.stream()
+                    .map(TestError::getMessage)
+                    .distinct()
+                    .collect(Collectors.joining("\n"));
+            GuiHelper.runInEDT(() -> new Notification(errorMessages).setIcon(JOptionPane.INFORMATION_MESSAGE).show());
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 16998)
+++ trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 17003)
@@ -53,5 +53,5 @@
      */
     protected Future<?> doMerge(List<? extends Layer> targetLayers, final Collection<? extends Layer> sourceLayers) {
-        final boolean onlygpx = targetLayers.stream().noneMatch(l -> !(l instanceof GpxLayer));
+        final boolean onlygpx = targetLayers.stream().allMatch(l -> l instanceof GpxLayer);
         final TargetLayerDialogResult<Layer> res = askTargetLayer(targetLayers, onlygpx,
                 tr("Cut timewise overlapping parts of tracks"),
