diff --git a/src/tag.c b/src/tag.c
index 94b5e2b..a80a362 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -44,10 +44,6 @@
 #define MT_GL_CUR	1		/* global match in current file */
 #define MT_GL_OTH	2		/* global match in other file */
 #define MT_ST_OTH	3		/* static match in other file */
-#define MT_IC_ST_CUR	4		/* icase static match in current file */
-#define MT_IC_GL_CUR	5		/* icase global match in current file */
-#define MT_IC_GL_OTH	6		/* icase global match in other file */
-#define MT_IC_ST_OTH	7		/* icase static match in other file */
 #define MT_IC_OFF	4		/* add for icase match */
 #define MT_RE_OFF	8		/* add for regexp match */
 #define MT_MASK		7		/* mask for printing priority */
@@ -2317,7 +2313,7 @@
 			if (tagp.command + 2 < temp_end)
 			{
 			    len = (int)(temp_end - tagp.command - 2);
-			    mfp = (char_u *)alloc((int)sizeof(char_u) + len + 1);
+			    mfp = (char_u *)alloc(len + 2);
 			    if (mfp != NULL)
 				vim_strncpy(mfp, tagp.command + 2, len);
 			}
@@ -2351,6 +2347,7 @@
 		     * Emacs tag: <mtt><tag_fname><0x01><ebuf><0x01><lbuf><NUL>
 		     * other tag: <mtt><tag_fname><0x01><0x01><lbuf><NUL>
 		     * without Emacs tags: <mtt><tag_fname><0x01><lbuf><NUL>
+		     * Here <mtt> is the "mtt" value plus 1 to avoid NUL.
 		     */
 		    len = (int)tag_fname_len + (int)STRLEN(lbuf) + 3;
 #ifdef FEAT_EMACS_TAGS
@@ -2366,7 +2363,7 @@
 		    if (mfp != NULL)
 		    {
 			p = mfp;
-			p[0] = mtt;
+			p[0] = mtt + 1;
 			STRCPY(p + 1, tag_fname);
 #ifdef BACKSLASH_IN_FILENAME
 			/* Ignore differences in slashes, avoid adding
@@ -2548,10 +2545,16 @@
 		    vim_free(mfp);
 		else
 		{
-		    /* now change the TAG_SEP back to NUL */
-		    for (p = mfp; *p != NUL; ++p)
-			if (*p == TAG_SEP)
-			    *p = NUL;
+		    if (!name_only)
+		    {
+			/* Change mtt back to zero-based. */
+			*mfp = *mfp - 1;
+
+			/* change the TAG_SEP back to NUL */
+			for (p = mfp + 1; *p != NUL; ++p)
+			    if (*p == TAG_SEP)
+				*p = NUL;
+		    }
 		    matches[match_count++] = (char_u *)mfp;
 		}
 		todo--;
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index 11ec144..221514d 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -23,6 +23,24 @@
   quit
 endfunc
 
+func Test_static_tagjump()
+  set tags=Xtags
+  call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
+        \ "one\tXfile1\t/^one/;\"\tf\tfile:\tsignature:(void)",
+        \ "word\tXfile2\tcmd2"],
+        \ 'Xtags')
+  new Xfile1
+  call setline(1, ['empty', 'one()', 'empty'])
+  write
+  tag one
+  call assert_equal(2, line('.'))
+
+  set tags&
+  call delete('Xtags')
+  call delete('Xfile1')
+  bwipe!
+endfunc
+
 " Tests for [ CTRL-I and CTRL-W CTRL-I commands
 function Test_keyword_jump()
   call writefile(["#include Xinclude", "",
diff --git a/src/version.c b/src/version.c
index cfb4e59..28c6776 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    195,
+/**/
     194,
 /**/
     193,
