Index: /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 11260)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 11261)
@@ -357,7 +357,11 @@
         data.addDataSetListener(MultipolygonCache.getInstance());
         DataSet.addSelectionListener(this);
-        if (name != null && name.startsWith(createLayerName(""))) {
+        if (name != null && name.startsWith(createLayerName(""))
+                && Character.isDigit((name.substring(createLayerName("").length()) + "XX" /*avoid StringIndexOutOfBoundsException*/).charAt(1))) {
             while (AlphanumComparator.getInstance().compare(createLayerName(dataLayerCounter), name) < 0) {
-                dataLayerCounter.incrementAndGet();
+                final int i = dataLayerCounter.incrementAndGet();
+                if (i > 1_000_000) {
+                    break; // to avoid looping in unforeseen case
+                }
             }
         }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java	(revision 11260)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java	(revision 11261)
@@ -259,3 +259,18 @@
         assertEquals("Data Layer 148", layer2.getName());
     }
+
+    @Test
+    public void testLayerUnnumberedName() {
+        final OsmDataLayer layer = new OsmDataLayer(new DataSet(), "Data Layer ", null);
+        assertEquals("Data Layer ", layer.getName());
+    }
+
+    /**
+     * Non-regression test for ticket #13985
+     */
+    @Test
+    public void testLayerNameDoesFinish() {
+        final OsmDataLayer layer = new OsmDataLayer(new DataSet(), "Data Layer from GeoJSON: foo.geojson", null);
+        assertEquals("Data Layer from GeoJSON: foo.geojson", layer.getName());
+    }
 }
