diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 1dc56a3..69370ac 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -3332,11 +3332,8 @@
     int		result;
     int		size = 0;
     int		flag = 0;
-    int		old_reglnum = -1;
     int		go_to_nextline = FALSE;
     nfa_thread_T *t;
-    char_u	*old_reginput = NULL;
-    char_u	*old_regline = NULL;
     nfa_list_T	list[3];
     nfa_list_T	*listtbl[2][2];
     nfa_list_T	*ll;
@@ -3560,15 +3557,18 @@
 		break;
 
 	    case NFA_START_INVISIBLE:
-		/* Save global variables, and call nfa_regmatch() to check if
-		 * the current concat matches at this position. The concat
-		 * ends with the node NFA_END_INVISIBLE */
-		old_reginput = reginput;
-		old_regline = regline;
-		old_reglnum = reglnum;
+	      {
+		char_u	*save_reginput = reginput;
+		char_u	*save_regline = regline;
+		int	save_reglnum = reglnum;
+		int	save_nfa_match = nfa_match;
+
+		/* Call nfa_regmatch() to check if the current concat matches
+		 * at this position. The concat ends with the node
+		 * NFA_END_INVISIBLE */
 		if (listids == NULL)
 		{
-		    listids = (int *) lalloc(sizeof(int) * nstate, TRUE);
+		    listids = (int *)lalloc(sizeof(int) * nstate, TRUE);
 		    if (listids == NULL)
 		    {
 			EMSG(_("E878: (NFA) Could not allocate memory for branch traversal!"));
@@ -3588,7 +3588,12 @@
 		result = nfa_regmatch(t->state->out, submatch, m);
 		nfa_set_neg_listids(start);
 		nfa_restore_listids(start, listids);
-		nfa_match = FALSE;
+
+		/* restore position in input text */
+		reginput = save_reginput;
+		regline = save_regline;
+		reglnum = save_reglnum;
+		nfa_match = save_nfa_match;
 
 #ifdef ENABLE_LOG
 		log_fd = fopen(NFA_REGEXP_RUN_LOG, "a");
@@ -3610,10 +3615,6 @@
 		{
 		    int j;
 
-		    /* Restore position in input text */
-		    reginput = old_reginput;
-		    regline = old_regline;
-		    reglnum = old_reglnum;
 		    /* Copy submatch info from the recursive call */
 		    if (REG_MULTI)
 			for (j = 1; j < m->in_use; j++)
@@ -3635,12 +3636,8 @@
 		    addstate_here(thislist, t->state->out1->out, &t->sub,
 								    &listidx);
 		}
-		else
-		{
-		    /* continue with next input char */
-		    reginput = old_reginput;
-		}
 		break;
+	      }
 
 	    case NFA_BOL:
 		if (reginput == regline)
diff --git a/src/testdir/test64.in b/src/testdir/test64.in
index 1f14165..45a71d2 100644
--- a/src/testdir/test64.in
+++ b/src/testdir/test64.in
@@ -305,6 +305,7 @@
 :call add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
 :call add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
 :call add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', 'John is Bobs friend'])
+:call add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
 :call add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
 :call add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
 :call add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep', 'test1'])
diff --git a/src/testdir/test64.ok b/src/testdir/test64.ok
index ed4f52d..2f96073 100644
--- a/src/testdir/test64.ok
+++ b/src/testdir/test64.ok
@@ -669,6 +669,9 @@
 OK 0 - \(John.*\)\@=.*Bob
 OK 1 - \(John.*\)\@=.*Bob
 OK 2 - \(John.*\)\@=.*Bob
+OK 0 - \<\S\+\())\)\@=
+OK 1 - \<\S\+\())\)\@=
+OK 2 - \<\S\+\())\)\@=
 OK 0 - .*John\&.*Bob
 OK 1 - .*John\&.*Bob
 OK 2 - .*John\&.*Bob
diff --git a/src/version.c b/src/version.c
index 5a31c9f..8db4fb4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1082,
+/**/
     1081,
 /**/
     1080,
