Index: trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 11259)
+++ 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
+                }
             }
         }
