Index: trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 9472)
+++ trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 9473)
@@ -225,5 +225,5 @@
                             tr("Cannot merge nodes: Would have to delete way {0} which is still used by {1}",
                                 DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(w),
-                                DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(w.getReferrers())),
+                                DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(w.getReferrers(), 20)),
                             tr("Warning"),
                             JOptionPane.WARNING_MESSAGE,
Index: trunk/src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 9472)
+++ trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 9473)
@@ -505,5 +505,5 @@
                 + "<br/>"
                 + "Do you really want to delete?",
-                relations.size(), relations.size(), DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(relations))
+                relations.size(), relations.size(), DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(relations, 20))
                 + "</html>"));
         return ConditionalOptionPaneUtil.showConfirmationDialog(
Index: trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 9472)
+++ trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 9473)
@@ -644,8 +644,9 @@
      * Formats the given collection of primitives as an HTML unordered list.
      * @param primitives collection of primitives to format
+     * @param maxElements the maximum number of elements to display
      * @return HTML unordered list
      */
-    public String formatAsHtmlUnorderedList(Collection<? extends OsmPrimitive> primitives) {
-        return Utils.joinAsHtmlUnorderedList(Utils.transform(primitives, new Function<OsmPrimitive, String>() {
+    public String formatAsHtmlUnorderedList(Collection<? extends OsmPrimitive> primitives, int maxElements) {
+        final Collection<String> displayNames = Utils.transform(primitives, new Function<OsmPrimitive, String>() {
 
             @Override
@@ -653,14 +654,15 @@
                 return x.getDisplayName(DefaultNameFormatter.this);
             }
-        }));
-    }
-
-    /**
-     * Formats the given primitive(s) as an HTML unordered list.
-     * @param primitives primitive(s) to format
+        });
+        return Utils.joinAsHtmlUnorderedList(Utils.limit(displayNames, maxElements, "..."));
+    }
+
+    /**
+     * Formats the given primitive as an HTML unordered list.
+     * @param primitive primitive to format
      * @return HTML unordered list
      */
-    public String formatAsHtmlUnorderedList(OsmPrimitive... primitives) {
-        return formatAsHtmlUnorderedList(Arrays.asList(primitives));
+    public String formatAsHtmlUnorderedList(OsmPrimitive primitive) {
+        return formatAsHtmlUnorderedList(Collections.singletonList(primitive), 1);
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 9472)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 9473)
@@ -551,5 +551,5 @@
                 + "Do you want to continue?",
                 parentRelations.size(), parentRelations.size(), primitives.size(),
-                DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(parentRelations));
+                DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(parentRelations, 20));
 
         if (!ConditionalOptionPaneUtil.showConfirmationDialog(
Index: trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 9472)
+++ trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 9473)
@@ -1307,9 +1307,30 @@
             return null;
         } else {
-            final List<String> lines = Arrays.asList(s.split("\\n"));
-            if (lines.size() > maxLines) {
-                return join("\n", lines.subList(0, maxLines - 1)) + "\n...";
+            return join("\n", limit(Arrays.asList(s.split("\\n")), maxLines, "..."));
+        }
+    }
+
+    /**
+     * If the collection {@code elements} is larger than {@code maxElements} elements,
+     * the collection is shortened and the {@code overflowIndicator} is appended.
+     * @param elements collection to shorten
+     * @param maxElements maximum number of elements to keep (including including the {@code overflowIndicator})
+     * @param overflowIndicator the element used to indicate that the collection has been shortened
+     * @return the shortened collection
+     */
+    public static <T> Collection<T> limit(Collection<T> elements, int maxElements, T overflowIndicator) {
+        if (elements == null) {
+            return null;
+        } else {
+            if (elements.size() > maxElements) {
+                final Collection<T> r = new ArrayList<>(maxElements);
+                final Iterator<T> it = elements.iterator();
+                while (r.size() < maxElements - 1) {
+                    r.add(it.next());
+                }
+                r.add(overflowIndicator);
+                return r;
             } else {
-                return s;
+                return elements;
             }
         }
