Index: applications/editors/josm/plugins/indoorhelper/src/model/IndoorLevel.java
===================================================================
--- applications/editors/josm/plugins/indoorhelper/src/model/IndoorLevel.java	(revision 35239)
+++ applications/editors/josm/plugins/indoorhelper/src/model/IndoorLevel.java	(revision 35240)
@@ -19,4 +19,7 @@
 package model;
 
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.openstreetmap.josm.data.osm.Tag;
 
@@ -30,4 +33,6 @@
 
 public class IndoorLevel {
+
+    private static final Pattern RANGE = Pattern.compile("(-?[0-9]+)-(-?[0-9]+)");
 
     private Tag levelNumberTag;
@@ -119,12 +124,10 @@
         for (String val : vals.split(";")) {
             int firstVal, secVal;
+            Matcher m = RANGE.matcher(val);
 
             //Extract values
-            if (val.indexOf("-") == 0) {
-                firstVal = Integer.parseInt(val.split("-", 2)[1].split("-", 2)[0])*-1;
-                secVal = Integer.parseInt(val.split("-", 2)[1].split("-", 2)[1]);
-            } else if (val.contains("-")) {
-                firstVal = Integer.parseInt(val.split("-")[0]);
-                secVal = Integer.parseInt(val.split("-")[1]);
+            if (m.matches()) {
+                firstVal = Integer.parseInt(m.group(1));
+                secVal = Integer.parseInt(m.group(2));
             } else {
                 firstVal = Integer.parseInt(val);
Index: applications/editors/josm/plugins/indoorhelper/test/unit/model/IndoorLevelTest.java
===================================================================
--- applications/editors/josm/plugins/indoorhelper/test/unit/model/IndoorLevelTest.java	(revision 35239)
+++ applications/editors/josm/plugins/indoorhelper/test/unit/model/IndoorLevelTest.java	(revision 35240)
@@ -17,4 +17,13 @@
     @Test
     public void testIsPartOfWorkingLevel() {
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("-3--1", -3));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("-3--1", -2));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("-3--1", -1));
+        assertFalse(IndoorLevel.isPartOfWorkingLevel("-3--1", 0));
+
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("-1;0;1", -1));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("-1;0;1", 0));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("-1;0;1", 1));
+
         assertFalse(IndoorLevel.isPartOfWorkingLevel("1;2", 0));
         assertTrue(IndoorLevel.isPartOfWorkingLevel("1;2", 1));
