diff --git a/src/parser_stmt.c b/src/parser_stmt.c
index 01a598e..2875b75 100644
--- a/src/parser_stmt.c
+++ b/src/parser_stmt.c
@@ -542,8 +542,8 @@
 {
     size_t arg_len;
     char *ptr = NULL;
-    long int num = 0;
-    unsigned long int unum = 0;
+    long long int num = 0;
+    unsigned long long int unum = 0;
 
     if (*flags & LYS_SET_VALUE) {
         LOGVAL_PARSER(ctx, LY_VCODE_DUPSTMT, ly_stmt2str(stmt->kw));
@@ -562,13 +562,13 @@
 
     errno = 0;
     if (stmt->kw == LY_STMT_VALUE) {
-        num = strtol(stmt->arg, &ptr, LY_BASE_DEC);
+        num = strtoll(stmt->arg, &ptr, LY_BASE_DEC);
         if ((num < INT64_C(-2147483648)) || (num > INT64_C(2147483647))) {
             LOGVAL_PARSER(ctx, LY_VCODE_INVAL, arg_len, stmt->arg, ly_stmt2str(stmt->kw));
             goto error;
         }
     } else {
-        unum = strtoul(stmt->arg, &ptr, LY_BASE_DEC);
+        unum = strtoull(stmt->arg, &ptr, LY_BASE_DEC);
         if (unum > UINT64_C(4294967295)) {
             LOGVAL_PARSER(ctx, LY_VCODE_INVAL, arg_len, stmt->arg, ly_stmt2str(stmt->kw));
             goto error;
@@ -681,7 +681,7 @@
 {
     char *ptr;
     size_t arg_len;
-    unsigned long int num;
+    unsigned long long int num;
 
     if (*fracdig) {
         LOGVAL_PARSER(ctx, LY_VCODE_DUPSTMT, "fraction-digits");
@@ -696,7 +696,7 @@
     }
 
     errno = 0;
-    num = strtoul(stmt->arg, &ptr, LY_BASE_DEC);
+    num = strtoull(stmt->arg, &ptr, LY_BASE_DEC);
     /* we have not parsed the whole argument */
     if ((size_t)(ptr - stmt->arg) != arg_len) {
         LOGVAL_PARSER(ctx, LY_VCODE_INVAL, arg_len, stmt->arg, "fraction-digits");
@@ -1069,7 +1069,7 @@
 {
     size_t arg_len;
     char *ptr;
-    unsigned long int num;
+    unsigned long long int num;
 
     if (*flags & LYS_SET_MAX) {
         LOGVAL_PARSER(ctx, LY_VCODE_DUPSTMT, "max-elements");
@@ -1088,7 +1088,7 @@
 
     if ((arg_len != ly_strlen_const("unbounded")) || strncmp(stmt->arg, "unbounded", arg_len)) {
         errno = 0;
-        num = strtoul(stmt->arg, &ptr, LY_BASE_DEC);
+        num = strtoull(stmt->arg, &ptr, LY_BASE_DEC);
         /* we have not parsed the whole argument */
         if ((size_t)(ptr - stmt->arg) != arg_len) {
             LOGVAL_PARSER(ctx, LY_VCODE_INVAL, arg_len, stmt->arg, "max-elements");
@@ -1136,7 +1136,7 @@
 {
     size_t arg_len;
     char *ptr;
-    unsigned long int num;
+    unsigned long long int num;
 
     if (*flags & LYS_SET_MIN) {
         LOGVAL_PARSER(ctx, LY_VCODE_DUPSTMT, "min-elements");
@@ -1154,7 +1154,7 @@
     }
 
     errno = 0;
-    num = strtoul(stmt->arg, &ptr, LY_BASE_DEC);
+    num = strtoull(stmt->arg, &ptr, LY_BASE_DEC);
     /* we have not parsed the whole argument */
     if ((size_t)(ptr - stmt->arg) != arg_len) {
         LOGVAL_PARSER(ctx, LY_VCODE_INVAL, arg_len, stmt->arg, "min-elements");
