Index: /trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java	(revision 17563)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java	(revision 17564)
@@ -298,7 +298,13 @@
         public String resolve(Set<String> values) {
             Set<String> results = instantiateSortedSet();
-            for (String value: values) {
-                String[] parts = value.split(Pattern.quote(separator), -1);
-                results.addAll(Arrays.asList(parts));
+            String pattern = Pattern.quote(separator);
+            try {
+                for (String value: values) {
+                    results.addAll(Arrays.asList(value.split(pattern, -1)));
+                }
+            } catch (NumberFormatException e) {
+                Logging.error("Unable to parse {0} values in {1} -> {2}", sort, this, e.getMessage());
+                Logging.debug(e);
+                results = values;
             }
             return String.join(separator, results);
Index: /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtilTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtilTest.java	(revision 17563)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtilTest.java	(revision 17564)
@@ -5,6 +5,6 @@
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.util.Arrays;
@@ -213,10 +213,10 @@
         void testResolve() {
             for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("random", "", true, "|", "String"))) {
-                assertEquals(resolver.resolve(newHashSet("value1", "value2")), "value1|value2");
-                assertEquals(resolver.resolve(newHashSet("3|1", "4|2|1", "6|05", "3;1")), "05|1|2|3|3;1|4|6");
+                assertEquals("value1|value2", resolver.resolve(newHashSet("value1", "value2")));
+                assertEquals("05|1|2|3|3;1|4|6", resolver.resolve(newHashSet("3|1", "4|2|1", "6|05", "3;1")));
             }
 
             for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("test[45].*", "", true, ";", "Integer"))) {
-                assertEquals(resolver.resolve(newHashSet("1254545;95;24", "25;24;3")), "3;24;25;95;1254545");
+                assertEquals("3;24;25;95;1254545", resolver.resolve(newHashSet("1254545;95;24", "25;24;3")));
             }
 
@@ -224,4 +224,8 @@
                 String resolution = resolver.resolve(newHashSet("3;x;1", "4;x"));
                 assertTrue(resolution.equals("3;x;1;4") || resolution.equals("4;x;3;1"));
+            }
+
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("foo", "", true, ";", "Integer"))) {
+                assertEquals("bar;1;2;3", resolver.resolve(newHashSet("1;2;3", "bar")));
             }
         }
