Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj	(revision 15909)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj	(revision 15910)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.data.preferences.NamedColorProperty;
 import org.openstreetmap.josm.gui.mappaint.Keyword;
+import org.openstreetmap.josm.gui.mappaint.Range;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context;
@@ -42,5 +43,4 @@
 import org.openstreetmap.josm.tools.JosmRuntimeException;
 import org.openstreetmap.josm.tools.Logging;
-import org.openstreetmap.josm.tools.Pair;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -728,5 +728,5 @@
     Token base;
     Condition c;
-    Pair<Integer, Integer> r = null;
+    Range r = Range.ZERO_TO_INFINITY;
     List<Condition> conditions = new ArrayList<Condition>();
     Subpart sub = null;
@@ -740,5 +740,5 @@
 }
 
-Pair<Integer, Integer> zoom() :
+Range zoom() :
 {
     Integer min = 0;
@@ -755,5 +755,5 @@
             min=uint() { max = min; }
     )
-    { return new Pair<Integer, Integer>(min, max); }
+    { return GeneralSelector.fromLevel(min, max); }
 }
 
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 15909)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 15910)
@@ -32,5 +32,4 @@
 import org.openstreetmap.josm.tools.Geometry;
 import org.openstreetmap.josm.tools.Logging;
-import org.openstreetmap.josm.tools.Pair;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -610,5 +609,5 @@
     class GeneralSelector extends OptimizedGeneralSelector {
 
-        public GeneralSelector(String base, Pair<Integer, Integer> zoom, List<Condition> conds, Subpart subpart) {
+        public GeneralSelector(String base, Range zoom, List<Condition> conds, Subpart subpart) {
             super(base, zoom, conds, subpart);
         }
@@ -638,25 +637,8 @@
         public final Subpart subpart;
 
-        public OptimizedGeneralSelector(String base, Pair<Integer, Integer> zoom, List<Condition> conds, Subpart subpart) {
-            super(conds);
-            this.base = checkBase(base);
-            if (zoom != null) {
-                int a = zoom.a == null ? 0 : zoom.a;
-                int b = zoom.b == null ? Integer.MAX_VALUE : zoom.b;
-                if (a <= b) {
-                    range = fromLevel(a, b);
-                } else {
-                    range = Range.ZERO_TO_INFINITY;
-                }
-            } else {
-                range = Range.ZERO_TO_INFINITY;
-            }
-            this.subpart = subpart != null ? subpart : Subpart.DEFAULT_SUBPART;
-        }
-
         public OptimizedGeneralSelector(String base, Range range, List<Condition> conds, Subpart subpart) {
             super(conds);
             this.base = checkBase(base);
-            this.range = range;
+            this.range = Objects.requireNonNull(range, "range");
             this.subpart = subpart != null ? subpart : Subpart.DEFAULT_SUBPART;
         }
