updated for version 7.0191
diff --git a/src/eval.c b/src/eval.c
index cfcc9d4..c44aae0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -400,8 +400,6 @@
 static int get_string_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
 static int get_lit_string_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
 static int get_list_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
-static list_T *list_alloc __ARGS((void));
-static void list_free __ARGS((list_T *l));
 static listitem_T *listitem_alloc __ARGS((void));
 static void listitem_free __ARGS((listitem_T *item));
 static void listitem_remove __ARGS((list_T *l, listitem_T *item));
@@ -5197,7 +5195,7 @@
  * Allocate an empty header for a list.
  * Caller should take care of the reference count.
  */
-    static list_T *
+    list_T *
 list_alloc()
 {
     list_T  *l;
@@ -5231,7 +5229,7 @@
  * Free a list, including all items it points to.
  * Ignores the reference count.
  */
-    static void
+    void
 list_free(l)
     list_T *l;
 {
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 8211a7f..7a9c033 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -543,6 +543,8 @@
 			RANGE|NOTADR|COUNT|TRLBAR|BANG),
 EX(CMD_lrewind,		"lrewind",	ex_cc,
 			RANGE|NOTADR|COUNT|TRLBAR|BANG),
+EX(CMD_ltag,		"ltag",	ex_tag,
+			NOTADR|TRLBAR|BANG|WORD1),
 EX(CMD_lunmap,		"lunmap",	ex_unmap,
 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
 EX(CMD_lwindow,		"lwindow",	ex_cwindow,
diff --git a/src/fold.c b/src/fold.c
index 67d542c..e1dda7e 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -3188,7 +3188,7 @@
 		--flp->lvl_next;
 	}
 	else
-	    ++s;
+	    mb_ptr_adv(s);
     }
 
     /* The level can't go negative, must be missing a start marker. */