diff --git a/src/vty/command.c b/src/vty/command.c
index 9b32d22..16dd07f 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -37,6 +37,7 @@
 #include <unistd.h>
 #include <ctype.h>
 #include <time.h>
+#include <limits.h>
 #include <sys/time.h>
 #include <sys/stat.h>
 
@@ -1262,12 +1263,27 @@
 
 #endif				/* HAVE_IPV6  */
 
-#define DECIMAL_STRLEN_MAX 10
+
+#if ULONG_MAX == 18446744073709551615UL
+#define DECIMAL_STRLEN_MAX_UNSIGNED 20
+#elif ULONG_MAX == 4294967295UL
+#define DECIMAL_STRLEN_MAX_UNSIGNED 10
+#else
+#error "ULONG_MAX not defined!"
+#endif
+
+#if LONG_MAX == 9223372036854775807L
+#define DECIMAL_STRLEN_MAX_SIGNED 19
+#elif LONG_MAX == 2147483647L
+#define DECIMAL_STRLEN_MAX_SIGNED 10
+#else
+#error "LONG_MAX not defined!"
+#endif
 
 static int cmd_range_match(const char *range, const char *str)
 {
 	char *p;
-	char buf[DECIMAL_STRLEN_MAX + 1];
+	char buf[DECIMAL_STRLEN_MAX_UNSIGNED + 1];
 	char *endptr = NULL;
 
 	if (str == NULL)
@@ -1284,7 +1300,7 @@
 		p = strchr(range, '-');
 		if (p == NULL)
 			return 0;
-		if (p - range > DECIMAL_STRLEN_MAX)
+		if (p - range > DECIMAL_STRLEN_MAX_SIGNED)
 			return 0;
 		strncpy(buf, range, p - range);
 		buf[p - range] = '\0';
@@ -1296,7 +1312,7 @@
 		p = strchr(range, '>');
 		if (p == NULL)
 			return 0;
-		if (p - range > DECIMAL_STRLEN_MAX)
+		if (p - range > DECIMAL_STRLEN_MAX_SIGNED)
 			return 0;
 		strncpy(buf, range, p - range);
 		buf[p - range] = '\0';
@@ -1317,7 +1333,7 @@
 		p = strchr(range, '-');
 		if (p == NULL)
 			return 0;
-		if (p - range > DECIMAL_STRLEN_MAX)
+		if (p - range > DECIMAL_STRLEN_MAX_UNSIGNED)
 			return 0;
 		strncpy(buf, range, p - range);
 		buf[p - range] = '\0';
@@ -1329,7 +1345,7 @@
 		p = strchr(range, '>');
 		if (p == NULL)
 			return 0;
-		if (p - range > DECIMAL_STRLEN_MAX)
+		if (p - range > DECIMAL_STRLEN_MAX_UNSIGNED)
 			return 0;
 		strncpy(buf, range, p - range);
 		buf[p - range] = '\0';
diff --git a/tests/vty/vty_test.c b/tests/vty/vty_test.c
index 7146a1d..a7aef11 100644
--- a/tests/vty/vty_test.c
+++ b/tests/vty/vty_test.c
@@ -506,9 +506,9 @@
 	printf("Going to test test_numeric_range()\n");
 	vty = create_test_vty(&test);
 
-	OSMO_ASSERT(do_vty_command(vty, "numeric-range 0") == CMD_ERR_NO_MATCH);
-	OSMO_ASSERT(do_vty_command(vty, "numeric-range 40000") == CMD_ERR_NO_MATCH);
-	OSMO_ASSERT(do_vty_command(vty, "numeric-range -400000") == CMD_ERR_NO_MATCH);
+	OSMO_ASSERT(do_vty_command(vty, "numeric-range 0") == CMD_SUCCESS);
+	OSMO_ASSERT(do_vty_command(vty, "numeric-range 40000") == CMD_SUCCESS);
+	OSMO_ASSERT(do_vty_command(vty, "numeric-range -400000") == CMD_SUCCESS);
 
 	destroy_test_vty(&test, vty);
 }
diff --git a/tests/vty/vty_test.ok b/tests/vty/vty_test.ok
index d81c6c7..bac083d 100644
--- a/tests/vty/vty_test.ok
+++ b/tests/vty/vty_test.ok
@@ -313,9 +313,12 @@
 Returned: 0, Current node: 1 '%s> '
 Going to test test_numeric_range()
 Going to execute 'numeric-range 0'
-Returned: 2, Current node: 1 '%s> '
+Called: 'return-success'
+Returned: 0, Current node: 1 '%s> '
 Going to execute 'numeric-range 40000'
-Returned: 2, Current node: 1 '%s> '
+Called: 'return-success'
+Returned: 0, Current node: 1 '%s> '
 Going to execute 'numeric-range -400000'
-Returned: 2, Current node: 1 '%s> '
+Called: 'return-success'
+Returned: 0, Current node: 1 '%s> '
 All tests passed
