diff --git a/src/parser_yang.c b/src/parser_yang.c
index 703a24e..6067f6e 100644
--- a/src/parser_yang.c
+++ b/src/parser_yang.c
@@ -103,7 +103,7 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-buf_store_char(struct ly_ctx *ctx, const char *c, char **word_p, int *word_len, char **word_b, int *buf_len, int need_buf)
+buf_store_char(struct ly_ctx *ctx, const char *c, char **word_p, size_t *word_len, char **word_b, int *buf_len, int need_buf)
 {
     if (word_b && *word_b) {
         /* add another character into buffer */
@@ -259,7 +259,7 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-read_qstring(struct ly_ctx *ctx, const char **data, enum yang_arg arg, char **word_p, char **word_b, int *word_len,
+read_qstring(struct ly_ctx *ctx, const char **data, enum yang_arg arg, char **word_p, char **word_b, size_t *word_len,
              int *buf_len, int indent)
 {
     /* string: 0 - string ended, 1 - string with ', 2 - string with ", 3 - string with " with last character \,
@@ -402,6 +402,7 @@
             case '+':
                 /* string continues */
                 string = 5;
+                need_buf = 1;
                 break;
             case ' ':
             case '\t':
@@ -458,7 +459,7 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-get_string(struct ly_ctx *ctx, const char **data, enum yang_arg arg, char **word_p, char **word_b, int *word_len)
+get_string(struct ly_ctx *ctx, const char **data, enum yang_arg arg, char **word_p, char **word_b, size_t *word_len)
 {
     int buf_len = 0, slash = 0, indent = 0, prefix = 0;
     LY_ERR ret;
@@ -580,7 +581,7 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-get_keyword(struct ly_ctx *ctx, const char **data, enum yang_keyword *kw, char **word_p, int *word_len)
+get_keyword(struct ly_ctx *ctx, const char **data, enum yang_keyword *kw, char **word_p, size_t *word_len)
 {
     LY_ERR ret;
     int prefix;
@@ -1053,7 +1054,7 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-parse_ext_substmt(struct ly_ctx *ctx, const char **data, char *word, int word_len,
+parse_ext_substmt(struct ly_ctx *ctx, const char **data, char *word, size_t word_len,
                   struct lysp_stmt **child)
 {
     char *buf;
@@ -1116,7 +1117,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     struct lysp_ext_instance *e;
     enum yang_keyword kw;
 
@@ -1170,7 +1171,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*value) {
@@ -1221,7 +1222,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (mod->version) {
@@ -1278,7 +1279,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*belongsto) {
@@ -1338,7 +1339,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (rev[0]) {
@@ -1392,7 +1393,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_include *inc;
 
@@ -1449,7 +1450,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_import *imp;
 
@@ -1515,7 +1516,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_revision *rev;
 
@@ -1575,7 +1576,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int count, word_len;
+    size_t count, word_len;
     enum yang_keyword kw;
 
     /* allocate new pointer */
@@ -1626,7 +1627,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*flags & LYS_CONFIG_MASK) {
@@ -1682,7 +1683,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*flags & LYS_MAND_MASK) {
@@ -1738,7 +1739,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     /* get value */
@@ -1816,7 +1817,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*flags & LYS_STATUS_MASK) {
@@ -1873,7 +1874,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_when *when;
 
@@ -1935,7 +1936,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     struct lysp_node *iter;
     struct lysp_node_anydata *any;
 
@@ -2024,7 +2025,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word, *ptr;
-    int word_len;
+    size_t word_len;
     long int num;
     unsigned long int unum;
     enum yang_keyword kw;
@@ -2052,7 +2053,7 @@
         unum = strtoul(word, &ptr, 10);
     }
     /* we have not parsed the whole argument */
-    if (ptr - word != word_len) {
+    if ((size_t)(ptr - word) != word_len) {
         LOGVAL(ctx, LY_VLOG_NONE, NULL, LY_VCODE_INVAL, word_len, word, ly_stmt2str(val_kw));
         free(buf);
         return LY_EVALID;
@@ -2102,7 +2103,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_type_enum *enm;
 
@@ -2167,7 +2168,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word, *ptr;
-    int word_len;
+    size_t word_len;
     unsigned long int num;
     enum yang_keyword kw;
 
@@ -2189,7 +2190,7 @@
     errno = 0;
     num = strtoul(word, &ptr, 10);
     /* we have not parsed the whole argument */
-    if (ptr - word != word_len) {
+    if ((size_t)(ptr - word) != word_len) {
         LOGVAL(ctx, LY_VLOG_NONE, NULL, LY_VCODE_INVAL, word_len, word, "fraction-digits");
         free(buf);
         return LY_EVALID;
@@ -2237,7 +2238,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*flags & LYS_SET_REQINST) {
@@ -2292,7 +2293,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if ((*pat)[0] == 0x15) {
@@ -2353,7 +2354,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_restr *restr;
 
@@ -2422,7 +2423,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_type *nest_type;
 
@@ -2520,7 +2521,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_node *iter;
     struct lysp_node_leaf *leaf;
@@ -2622,7 +2623,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word, *ptr;
-    int word_len;
+    size_t word_len;
     unsigned long int num;
     enum yang_keyword kw;
 
@@ -2646,7 +2647,7 @@
         errno = 0;
         num = strtoul(word, &ptr, 10);
         /* we have not parsed the whole argument */
-        if (ptr - word != word_len) {
+        if ((size_t)(ptr - word) != word_len) {
             LOGVAL(ctx, LY_VLOG_NONE, NULL, LY_VCODE_INVAL, word_len, word, "max-elements");
             free(buf);
             return LY_EVALID;
@@ -2695,7 +2696,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word, *ptr;
-    int word_len;
+    size_t word_len;
     unsigned long int num;
     enum yang_keyword kw;
 
@@ -2718,7 +2719,7 @@
     errno = 0;
     num = strtoul(word, &ptr, 10);
     /* we have not parsed the whole argument */
-    if (ptr - word != word_len) {
+    if ((size_t)(ptr - word) != word_len) {
         LOGVAL(ctx, LY_VLOG_NONE, NULL, LY_VCODE_INVAL, word_len, word, "min-elements");
         free(buf);
         return LY_EVALID;
@@ -2764,7 +2765,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*flags & LYS_ORDBY_MASK) {
@@ -2819,7 +2820,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_node *iter;
     struct lysp_node_leaflist *llist;
@@ -2925,7 +2926,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_refine *rf;
 
@@ -3003,7 +3004,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_tpdf *tpdf;
 
@@ -3077,7 +3078,7 @@
 {
     LY_ERR ret = 0;
     char *word;
-    int word_len;
+    size_t word_len;
     struct lysp_action_inout *inout;
 
     if (*inout_p) {
@@ -3155,7 +3156,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_action *act;
 
@@ -3229,7 +3230,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_notif *notif;
 
@@ -3322,7 +3323,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_grp *grp;
 
@@ -3415,7 +3416,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_augment *aug;
 
@@ -3511,7 +3512,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_node *iter;
     struct lysp_node_uses *uses;
@@ -3594,7 +3595,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_node *iter;
     struct lysp_node_case *cas;
@@ -3693,7 +3694,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_node *iter;
     struct lysp_node_choice *choic;
@@ -3801,7 +3802,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_node *iter;
     struct lysp_node_container *cont;
@@ -3922,7 +3923,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_node *iter;
     struct lysp_node_list *list;
@@ -4056,7 +4057,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*flags & LYS_YINELEM_MASK) {
@@ -4113,7 +4114,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
 
     if (*argument) {
@@ -4166,7 +4167,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_ext *ex;
 
@@ -4226,7 +4227,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len, dev_mod;
+    size_t word_len, dev_mod;
     enum yang_keyword kw;
     struct lysp_deviate *iter, *d;
     struct lysp_deviate_add *d_add = NULL;
@@ -4442,7 +4443,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_deviation *dev;
 
@@ -4505,7 +4506,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_feature *feat;
 
@@ -4565,7 +4566,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw;
     struct lysp_ident *ident;
 
@@ -4628,7 +4629,7 @@
 {
     LY_ERR ret = 0;
     char *buf, *word;
-    int word_len;
+    size_t word_len;
     enum yang_keyword kw, prev_kw = 0;
     enum yang_module_stmt mod_stmt = Y_MOD_MODULE_HEADER;
 
@@ -4867,7 +4868,7 @@
 {
     LY_ERR ret = 0;
     char *word, *buf;
-    int word_len;
+    size_t word_len;
     const char *data_start;
     enum yang_keyword kw;
     struct lysp_module *mod;
