diff --git a/src/helper/command.c b/src/helper/command.c
index 5dbc047e6758fbe082ac7079ce516b65d3b9a964..bea480cc9361423a95eaca2edb1827e6c74bba6f 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -872,9 +872,9 @@ long jim_global_long(const char *variable)
 		*ul = func(str, &end, 0); \
 		if (*end) \
 			return ERROR_COMMAND_ARGUMENT_INVALID; \
-		if (*ul == max) \
+		if ((max == *ul) && (ERANGE == errno)) \
 			return ERROR_COMMAND_ARGUMENT_OVERFLOW; \
-		if (min && min == *ul) \
+		if (min && (min == *ul) && (ERANGE == errno)) \
 			return ERROR_COMMAND_ARGUMENT_UNDERFLOW; \
 		return ERROR_OK; \
 	}