diff --git a/7.3.1086 b/7.3.1086
new file mode 100644
index 0000000..779977a
--- /dev/null
+++ b/7.3.1086
@@ -0,0 +1,144 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.1086
+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.1086
+Problem:    Old regexp engine accepts illegal range, new one doesn't.
+Solution:   Also accept the illegal range with the new engine.
+Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.3.1085/src/regexp_nfa.c	2013-06-01 12:40:14.000000000 +0200
+--- src/regexp_nfa.c	2013-06-01 13:16:34.000000000 +0200
+***************
+*** 1089,1096 ****
+  			     * while loop. */
+  			}
+  		    }
+! 		    /* Try a range like 'a-x' or '\t-z' */
+! 		    if (*regparse == '-')
+  		    {
+  			emit_range = TRUE;
+  			startc = oldstartc;
+--- 1089,1097 ----
+  			     * while loop. */
+  			}
+  		    }
+! 		    /* Try a range like 'a-x' or '\t-z'. Also allows '-' as a
+! 		     * start character. */
+! 		    if (*regparse == '-' && oldstartc != -1)
+  		    {
+  			emit_range = TRUE;
+  			startc = oldstartc;
+***************
+*** 1140,1155 ****
+  
+  		    /* Normal printable char */
+  		    if (startc == -1)
+! #ifdef FEAT_MBYTE
+! 			startc = (*mb_ptr2char)(regparse);
+! #else
+! 		    startc = *regparse;
+! #endif
+  
+  		    /* Previous char was '-', so this char is end of range. */
+  		    if (emit_range)
+  		    {
+! 			endc = startc; startc = oldstartc;
+  			if (startc > endc)
+  			    EMSG_RET_FAIL(_(e_invrange));
+  #ifdef FEAT_MBYTE
+--- 1141,1153 ----
+  
+  		    /* Normal printable char */
+  		    if (startc == -1)
+! 			startc = PTR2CHAR(regparse);
+  
+  		    /* Previous char was '-', so this char is end of range. */
+  		    if (emit_range)
+  		    {
+! 			endc = startc;
+! 			startc = oldstartc;
+  			if (startc > endc)
+  			    EMSG_RET_FAIL(_(e_invrange));
+  #ifdef FEAT_MBYTE
+***************
+*** 1166,1172 ****
+  				TRY_NEG();
+  				EMIT_GLUE();
+  			    }
+- 			    emit_range = FALSE;
+  			}
+  			else
+  #endif
+--- 1164,1169 ----
+***************
+*** 1190,1197 ****
+  				    TRY_NEG();
+  				    EMIT_GLUE();
+  				}
+- 			    emit_range = FALSE;
+  			}
+  		    }
+  		    else
+  		    {
+--- 1187,1195 ----
+  				    TRY_NEG();
+  				    EMIT_GLUE();
+  				}
+  			}
++ 			emit_range = FALSE;
++ 			startc = -1;
+  		    }
+  		    else
+  		    {
+*** ../vim-7.3.1085/src/testdir/test64.in	2013-06-01 12:40:14.000000000 +0200
+--- src/testdir/test64.in	2013-06-01 13:14:51.000000000 +0200
+***************
+*** 270,275 ****
+--- 270,276 ----
+  :call add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
+  :call add(tl, [2, '\_f', "  \na ", "\n"])
+  :call add(tl, [2, '\_f\+', "  \na ", "\na"])
++ :call add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
+  :"
+  :"""" Test start/end of line, start/end of file
+  :call add(tl, [2, '^a.', "a_\nb ", "a_"])
+*** ../vim-7.3.1085/src/testdir/test64.ok	2013-06-01 12:40:14.000000000 +0200
+--- src/testdir/test64.ok	2013-06-01 13:22:58.000000000 +0200
+***************
+*** 605,610 ****
+--- 605,613 ----
+  OK 0 - \_f\+
+  OK 1 - \_f\+
+  OK 2 - \_f\+
++ OK 0 - [0-9A-Za-z-_.]\+
++ OK 1 - [0-9A-Za-z-_.]\+
++ OK 2 - [0-9A-Za-z-_.]\+
+  OK 0 - ^a.
+  OK 1 - ^a.
+  OK 2 - ^a.
+*** ../vim-7.3.1085/src/version.c	2013-06-01 12:40:14.000000000 +0200
+--- src/version.c	2013-06-01 13:17:56.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+  {   /* Add new patch number below this line */
++ /**/
++     1086,
+  /**/
+
+-- 
+Micro$oft: where do you want to go today?
+    Linux: where do you want to go tomorrow?
+  FreeBSD: are you guys coming, or what?
+
+ /// 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    ///