diff --git a/7.3.1118 b/7.3.1118
new file mode 100644
index 0000000..84779d4
--- /dev/null
+++ b/7.3.1118
@@ -0,0 +1,201 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.1118
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.1118
+Problem:    Match failure rate is not very specific.
+Solution:   Tune the failure rate for match items.
+Files:	    src/regexp_nfa.c
+
+
+*** ../vim-7.3.1117/src/regexp_nfa.c	2013-06-05 11:05:12.000000000 +0200
+--- src/regexp_nfa.c	2013-06-05 11:41:09.000000000 +0200
+***************
+*** 3956,3980 ****
+      if (depth > 4)
+  	return 1;
+  
+!     if (c == NFA_SPLIT)
+      {
+! 	if (state->out->c == NFA_SPLIT || state->out1->c == NFA_SPLIT)
+  	    return 1;
+! 	l = failure_chance(state->out, depth + 1);
+! 	r = failure_chance(state->out1, depth + 1);
+! 	return l < r ? l : r;
+!     }
+!     if (c == NFA_ANY)
+! 	return 1;
+!     if (c > 0)
+! 	return 99;
+!     if ((c >= NFA_MOPEN && c <= NFA_MOPEN9)
+  #ifdef FEAT_SYN_HL
+! 	    || (c >= NFA_ZOPEN && c <= NFA_ZOPEN9)
+  #endif
+! 	    || c == NFA_NOPEN)
+! 	return failure_chance(state->out, depth + 1);
+!     /* something else */
+      return 50;
+  }
+  
+--- 3956,4093 ----
+      if (depth > 4)
+  	return 1;
+  
+!     switch (c)
+      {
+! 	case NFA_SPLIT:
+! 	    if (state->out->c == NFA_SPLIT || state->out1->c == NFA_SPLIT)
+! 		/* avoid recursive stuff */
+! 		return 1;
+! 	    /* two alternatives, use the lowest failure chance */
+! 	    l = failure_chance(state->out, depth + 1);
+! 	    r = failure_chance(state->out1, depth + 1);
+! 	    return l < r ? l : r;
+! 
+! 	case NFA_ANY:
+! 	    /* matches anything, unlikely to fail */
+  	    return 1;
+! 	case NFA_MATCH:
+! 	    /* empty match works always */
+! 	    return 0;
+! 
+! 	case NFA_BOL:
+! 	case NFA_EOL:
+! 	case NFA_BOF:
+! 	case NFA_EOF:
+! 	case NFA_NEWL:
+! 	    return 99;
+! 
+! 	case NFA_BOW:
+! 	case NFA_EOW:
+! 	    return 90;
+! 
+! 	case NFA_MOPEN:
+! 	case NFA_MOPEN1:
+! 	case NFA_MOPEN2:
+! 	case NFA_MOPEN3:
+! 	case NFA_MOPEN4:
+! 	case NFA_MOPEN5:
+! 	case NFA_MOPEN6:
+! 	case NFA_MOPEN7:
+! 	case NFA_MOPEN8:
+! 	case NFA_MOPEN9:
+! #ifdef FEAT_SYN_HL
+! 	case NFA_ZOPEN:
+! 	case NFA_ZOPEN1:
+! 	case NFA_ZOPEN2:
+! 	case NFA_ZOPEN3:
+! 	case NFA_ZOPEN4:
+! 	case NFA_ZOPEN5:
+! 	case NFA_ZOPEN6:
+! 	case NFA_ZOPEN7:
+! 	case NFA_ZOPEN8:
+! 	case NFA_ZOPEN9:
+! 	case NFA_ZCLOSE:
+! 	case NFA_ZCLOSE1:
+! 	case NFA_ZCLOSE2:
+! 	case NFA_ZCLOSE3:
+! 	case NFA_ZCLOSE4:
+! 	case NFA_ZCLOSE5:
+! 	case NFA_ZCLOSE6:
+! 	case NFA_ZCLOSE7:
+! 	case NFA_ZCLOSE8:
+! 	case NFA_ZCLOSE9:
+! #endif
+! 	case NFA_NOPEN:
+! 	case NFA_MCLOSE:
+! 	case NFA_MCLOSE1:
+! 	case NFA_MCLOSE2:
+! 	case NFA_MCLOSE3:
+! 	case NFA_MCLOSE4:
+! 	case NFA_MCLOSE5:
+! 	case NFA_MCLOSE6:
+! 	case NFA_MCLOSE7:
+! 	case NFA_MCLOSE8:
+! 	case NFA_MCLOSE9:
+! 	case NFA_NCLOSE:
+! 	    return failure_chance(state->out, depth + 1);
+! 
+! 	case NFA_BACKREF1:
+! 	case NFA_BACKREF2:
+! 	case NFA_BACKREF3:
+! 	case NFA_BACKREF4:
+! 	case NFA_BACKREF5:
+! 	case NFA_BACKREF6:
+! 	case NFA_BACKREF7:
+! 	case NFA_BACKREF8:
+! 	case NFA_BACKREF9:
+  #ifdef FEAT_SYN_HL
+! 	case NFA_ZREF1:
+! 	case NFA_ZREF2:
+! 	case NFA_ZREF3:
+! 	case NFA_ZREF4:
+! 	case NFA_ZREF5:
+! 	case NFA_ZREF6:
+! 	case NFA_ZREF7:
+! 	case NFA_ZREF8:
+! 	case NFA_ZREF9:
+  #endif
+! 	    /* backreferences don't match in many places */
+! 	    return 94;
+! 
+! 	case NFA_LNUM_GT:
+! 	case NFA_LNUM_LT:
+! 	case NFA_COL_GT:
+! 	case NFA_COL_LT:
+! 	case NFA_VCOL_GT:
+! 	case NFA_VCOL_LT:
+! 	case NFA_MARK_GT:
+! 	case NFA_MARK_LT:
+! #ifdef FEAT_VISUAL
+! 	case NFA_VISUAL:
+! #endif
+! 	    /* before/after positions don't match very often */
+! 	    return 85;
+! 
+! 	case NFA_LNUM:
+! 	    return 90;
+! 
+! 	case NFA_CURSOR:
+! 	case NFA_COL:
+! 	case NFA_VCOL:
+! 	case NFA_MARK:
+! 	    /* specific positions rarely match */
+! 	    return 98;
+! 
+! 	case NFA_COMPOSING:
+! 	    return 95;
+! 
+! 	default:
+! 	    if (c > 0)
+! 		/* character match fails often */
+! 		return 95;
+!     }
+! 
+!     /* something else, includes character classes */
+      return 50;
+  }
+  
+*** ../vim-7.3.1117/src/version.c	2013-06-05 11:05:12.000000000 +0200
+--- src/version.c	2013-06-05 11:41:58.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+  {   /* Add new patch number below this line */
++ /**/
++     1118,
+  /**/
+
+-- 
+From "know your smileys":
+ :~)	A man with a tape recorder up his nose
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///