diff --git a/tool/NumberListParser.cpp b/tool/NumberListParser.cpp
index 33e4672083588384a3631ed4b047a3f0d627b7dd..9744a7630e27f6083757d202d233f57a6d80d1d5 100644
--- a/tool/NumberListParser.cpp
+++ b/tool/NumberListParser.cpp
@@ -109,7 +109,8 @@ NumberListParser::List NumberListParser::parse(const char *data)
             case Range:
                 if (i >= size) {
                     int max = maximum();
-                    if (max >= 0) {
+                    // only increasing ranges if second number omitted
+                    if (max >= 0 && firstNum <= (unsigned int) max) {
                         List r = range(firstNum, max);
                         ret.splice(ret.end(), r);
                     }