Index: trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 12405)
+++ trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 12407)
@@ -18,4 +18,6 @@
 import java.util.TreeSet;
 import java.util.function.Consumer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.openstreetmap.josm.Main;
@@ -175,17 +177,31 @@
         if (ds != null) {
             BBox bbox = Main.map.mapView.getState().getViewArea().getLatLonBoundsBox().toBBox();
-            Consumer<OsmPrimitive> consumer = o -> {
-                String value = o.get(key);
-                if (value != null) {
-                    for (String v : value.split(";")) {
+            Consumer<OsmPrimitive> consumer = getTagValuesConsumer(key, values);
+            ds.searchNodes(bbox).forEach(consumer);
+            ds.searchWays(bbox).forEach(consumer);
+            ds.searchRelations(bbox).forEach(consumer);
+        }
+        return values;
+    }
+
+    static Consumer<OsmPrimitive> getTagValuesConsumer(String key, Set<String> values) {
+        return o -> {
+            String value = o.get(key);
+            if (value != null) {
+                Pattern p = Pattern.compile("(-?[0-9]+)-(-?[0-9]+)");
+                for (String v : value.split(";")) {
+                    Matcher m = p.matcher(v);
+                    if (m.matches()) {
+                        int a = Integer.parseInt(m.group(1));
+                        int b = Integer.parseInt(m.group(2));
+                        for (int i = Math.min(a, b); i <= Math.max(a, b); i++) {
+                            values.add(Integer.toString(i));
+                        }
+                    } else {
                         values.add(v);
                     }
                 }
-            };
-            ds.searchNodes(bbox).forEach(consumer);
-            ds.searchWays(bbox).forEach(consumer);
-            ds.searchRelations(bbox).forEach(consumer);
-        }
-        return values;
+            }
+        };
     }
 
