updated for version 7.3.205
Problem:    Syntax "extend" doesn't work correctly.
Solution:   Avoid calling check_state_ends() recursively (Ben Schmidt)
diff --git a/src/syntax.c b/src/syntax.c
index da648e3..a9a2e86 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -990,7 +990,10 @@
      * previous line and regions that have "keepend".
      */
     if (current_state.ga_len > 0)
+    {
 	syn_update_ends(TRUE);
+	check_state_ends();
+    }
 
     next_match_idx = -1;
     ++current_line_id;
@@ -1064,7 +1067,6 @@
 	}
     }
     check_keepend();
-    check_state_ends();
 }
 
 /****************************************
@@ -2533,7 +2535,7 @@
 check_state_ends()
 {
     stateitem_T	*cur_si;
-    int		had_extend = FALSE;
+    int		had_extend;
 
     cur_si = &CUR_STATE(current_state.ga_len - 1);
     for (;;)
@@ -2586,8 +2588,7 @@
 
 		/* When the ended item has "extend", another item with
 		 * "keepend" now needs to check for its end. */
-		 if (cur_si->si_flags & HL_EXTEND)
-		     had_extend = TRUE;
+		 had_extend = (cur_si->si_flags & HL_EXTEND);
 
 		pop_current_state();
 
diff --git a/src/version.c b/src/version.c
index 8de124f..14c2b85 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    205,
+/**/
     204,
 /**/
     203,