Index: /applications/editors/josm/plugins/indoorhelper/src/controller/IndoorHelperController.java
===================================================================
--- /applications/editors/josm/plugins/indoorhelper/src/controller/IndoorHelperController.java	(revision 34308)
+++ /applications/editors/josm/plugins/indoorhelper/src/controller/IndoorHelperController.java	(revision 34309)
@@ -57,4 +57,5 @@
 
 import model.IndoorHelperModel;
+import model.IndoorLevel;
 import model.TagCatalog.IndoorObject;
 import views.LevelSelectorView;
@@ -264,10 +265,10 @@
    static class ToolHelpButtonListener implements ActionListener {
 
-	   @Override
-	   public void actionPerformed(ActionEvent e) {
-		   String topic = "Plugin/IndoorHelper";
-		   //Open HelpBrowser for short description about the plugin
-		   HelpBrowser.setUrlForHelpTopic(Optional.ofNullable(topic).orElse("/"));
-	   }
+       @Override
+       public void actionPerformed(ActionEvent e) {
+           String topic = "Plugin/IndoorHelper";
+           //Open HelpBrowser for short description about the plugin
+           HelpBrowser.setUrlForHelpTopic(Optional.ofNullable(topic).orElse("/"));
+       }
    }
 
@@ -565,5 +566,5 @@
     * specific tag (key). Just unsets the disabled state if object has a tag-value which is part of the
     * current working level.
-    * 
+    *
     * @author rebsc
     * @param key sepcific key to unset hidden objects which contains it
@@ -572,7 +573,5 @@
 
      Collection<OsmPrimitive> p = Main.main.getEditDataSet().allPrimitives();
-     Map<String, String> tags = new HashMap<>();
-     Integer level = Integer.parseInt(levelValue);
-     Integer firstVal, secVal;
+     int level = Integer.parseInt(levelValue);
 
      //Find all primitives with the specific tag and check if value is part of the current
@@ -580,22 +579,8 @@
      for (OsmPrimitive osm: p) {
          if ((osm.isDisabledAndHidden() || osm.isDisabled()) && osm.hasKey(key)) {
-
-             tags = osm.getInterestingTags();
-
-             for (Map.Entry<String, String> e: tags.entrySet()) {
+             for (Map.Entry<String, String> e: osm.getInterestingTags().entrySet()) {
                 if (e.getKey().equals(key)) {
-                    String val = e.getValue();
-
-                    //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 {
-                        firstVal = Integer.parseInt(val.split("-")[0]);
-                        secVal = Integer.parseInt(val.split("-")[1]);
-                    }
-
                     //Compare values to current working level
-                    if (level >= ((firstVal)-1) && level <= secVal) {
+                    if (IndoorLevel.isPartOfWorkingLevel(e.getValue(), level)) {
                         osm.unsetDisabledState();
                     } else {
Index: /applications/editors/josm/plugins/indoorhelper/src/model/IndoorLevel.java
===================================================================
--- /applications/editors/josm/plugins/indoorhelper/src/model/IndoorLevel.java	(revision 34308)
+++ /applications/editors/josm/plugins/indoorhelper/src/model/IndoorLevel.java	(revision 34309)
@@ -115,3 +115,28 @@
         }
     }
+
+    public static boolean isPartOfWorkingLevel(String vals, int level) {
+        for (String val : vals.split(";")) {
+            int firstVal, secVal;
+
+            //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]);
+            } else {
+                firstVal = Integer.parseInt(val);
+                secVal = firstVal;
+            }
+
+            // Compare values to current working level
+            if (level >= firstVal && level <= secVal) {
+                return true;
+            }
+        }
+
+        return false;
+    }
 }
Index: plications/editors/josm/plugins/indoorhelper/test/unit/PresetCounterTest.java
===================================================================
--- /applications/editors/josm/plugins/indoorhelper/test/unit/PresetCounterTest.java	(revision 34308)
+++ 	(revision )
@@ -1,47 +1,0 @@
-import static org.junit.Assert.assertEquals;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.Test;
-
-import model.PresetCounter;
-import model.TagCatalog.IndoorObject;
-
-public class PresetCounterTest {
-
-    /**
-     * Test case for testing the ranking functionality.
-     */
-    @Test
-    public void testRanking() {
-        // input preparation
-        PresetCounter counter = new PresetCounter();
-
-        counter.count(IndoorObject.CONCRETE_WALL);
-        counter.count(IndoorObject.CONCRETE_WALL);
-        counter.count(IndoorObject.CONCRETE_WALL);
-        counter.count(IndoorObject.ROOM);
-        counter.count(IndoorObject.ROOM);
-        counter.count(IndoorObject.STEPS);
-        counter.count(IndoorObject.TOILET_MALE);
-
-        List<IndoorObject> actualList = counter.getRanking();
-
-        //expectation
-        List<IndoorObject> expectedList = new ArrayList<>();
-        expectedList.add(IndoorObject.CONCRETE_WALL);
-        expectedList.add(IndoorObject.ROOM);
-        expectedList.add(IndoorObject.TOILET_MALE);
-        expectedList.add(IndoorObject.STEPS);
-
-
-        //assertion
-        assertEquals(expectedList.get(0), actualList.get(0));
-        assertEquals(expectedList.get(1), actualList.get(1));
-        assertEquals(expectedList.get(2), actualList.get(2));
-        assertEquals(expectedList.get(3), actualList.get(3));
-
-
-    }
-}
Index: /applications/editors/josm/plugins/indoorhelper/test/unit/model/IndoorLevelTest.java
===================================================================
--- /applications/editors/josm/plugins/indoorhelper/test/unit/model/IndoorLevelTest.java	(revision 34309)
+++ /applications/editors/josm/plugins/indoorhelper/test/unit/model/IndoorLevelTest.java	(revision 34309)
@@ -0,0 +1,36 @@
+// License: GPL. For details, see LICENSE file.
+package model;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+/**
+ * Unit tests of {@link IndoorLevel} class.
+ */
+public class IndoorLevelTest {
+
+    /**
+     * Test case for {@link IndoorLevel#isisPartOfWorkingLevel} method.
+     */
+    @Test
+    public void testIsPartOfWorkingLevel() {
+        assertFalse(IndoorLevel.isPartOfWorkingLevel("1;2", 0));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("1;2", 1));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("1;2", 2));
+
+        assertFalse(IndoorLevel.isPartOfWorkingLevel("1", 0));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("1", 1));
+
+        assertFalse(IndoorLevel.isPartOfWorkingLevel("0-3", -1));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("0-3", 0));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("0-3", 1));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("0-3", 3));
+
+        assertFalse(IndoorLevel.isPartOfWorkingLevel("2;3;4", 1));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("2;3;4", 2));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("2;3;4", 3));
+        assertTrue(IndoorLevel.isPartOfWorkingLevel("2;3;4", 4));
+    }
+}
Index: /applications/editors/josm/plugins/indoorhelper/test/unit/model/PresetCounterTest.java
===================================================================
--- /applications/editors/josm/plugins/indoorhelper/test/unit/model/PresetCounterTest.java	(revision 34309)
+++ /applications/editors/josm/plugins/indoorhelper/test/unit/model/PresetCounterTest.java	(revision 34309)
@@ -0,0 +1,49 @@
+// License: GPL. For details, see LICENSE file.
+package model;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+
+import model.TagCatalog.IndoorObject;
+
+/**
+ * Unit tests of {@link PresetCounter} class.
+ */
+public class PresetCounterTest {
+
+    /**
+     * Test case for testing the ranking functionality.
+     */
+    @Test
+    public void testRanking() {
+        // input preparation
+        PresetCounter counter = new PresetCounter();
+
+        counter.count(IndoorObject.CONCRETE_WALL);
+        counter.count(IndoorObject.CONCRETE_WALL);
+        counter.count(IndoorObject.CONCRETE_WALL);
+        counter.count(IndoorObject.ROOM);
+        counter.count(IndoorObject.ROOM);
+        counter.count(IndoorObject.STEPS);
+        counter.count(IndoorObject.TOILET_MALE);
+
+        List<IndoorObject> actualList = counter.getRanking();
+
+        //expectation
+        List<IndoorObject> expectedList = new ArrayList<>();
+        expectedList.add(IndoorObject.CONCRETE_WALL);
+        expectedList.add(IndoorObject.ROOM);
+        expectedList.add(IndoorObject.TOILET_MALE);
+        expectedList.add(IndoorObject.STEPS);
+
+        //assertion
+        assertEquals(expectedList.get(0), actualList.get(0));
+        assertEquals(expectedList.get(1), actualList.get(1));
+        assertEquals(expectedList.get(2), actualList.get(2));
+        assertEquals(expectedList.get(3), actualList.get(3));
+    }
+}
