updated for version 7.2-225
diff --git a/src/getchar.c b/src/getchar.c
index 0947f35..e050601 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1309,6 +1309,9 @@
     return OK;
 }
 
+static int old_char = -1;	/* character put back by vungetc() */
+static int old_mod_mask;	/* mod_mask for ungotten character */
+
 #if defined(FEAT_EVAL) || defined(FEAT_EX_EXTRA) || defined(PROTO)
 
 /*
@@ -1323,6 +1326,10 @@
     if (!tp->typebuf_valid)
 	typebuf = tp->save_typebuf;
 
+    tp->old_char = old_char;
+    tp->old_mod_mask = old_mod_mask;
+    old_char = -1;
+
     tp->save_stuffbuff = stuffbuff;
     stuffbuff.bh_first.b_next = NULL;
 # ifdef USE_INPUT_BUF
@@ -1344,6 +1351,9 @@
 	typebuf = tp->save_typebuf;
     }
 
+    old_char = tp->old_char;
+    old_mod_mask = tp->old_mod_mask;
+
     free_buff(&stuffbuff);
     stuffbuff = tp->save_stuffbuff;
 # ifdef USE_INPUT_BUF
@@ -1499,9 +1509,6 @@
 #define KL_PART_KEY -1		/* keylen value for incomplete key-code */
 #define KL_PART_MAP -2		/* keylen value for incomplete mapping */
 
-static int old_char = -1;	/* character put back by vungetc() */
-static int old_mod_mask;	/* mod_mask for ungotten character */
-
 /*
  * Get the next input character.
  * Can return a special key or a multi-byte character.
diff --git a/src/structs.h b/src/structs.h
index 6d6c1d8..658e098 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -882,6 +882,8 @@
 {
     typebuf_T		save_typebuf;
     int			typebuf_valid;	    /* TRUE when save_typebuf valid */
+    int			old_char;
+    int			old_mod_mask;
     struct buffheader	save_stuffbuff;
 #ifdef USE_INPUT_BUF
     char_u		*save_inputbuf;
diff --git a/src/version.c b/src/version.c
index f3e9b2b..be79821 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    225,
+/**/
     224,
 /**/
     223,