updated for version 7.3.361
Problem:    Accessing memory after it is freed when EXITFREE is defined.
Solution:   Don't access curwin when firstwin is NULL. (Dominique Pelle)
diff --git a/src/buffer.c b/src/buffer.c
index d4a9c1e..5b2ec68 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -567,8 +567,9 @@
     diff_buf_delete(buf);	    /* Can't use 'diff' for unloaded buffer. */
 #endif
 #ifdef FEAT_SYN_HL
-    if (curwin->w_buffer == buf)
-	reset_synblock(curwin);	    /* remove any ownsyntax */
+    /* Remove any ownsyntax, unless exiting. */
+    if (firstwin != NULL && curwin->w_buffer == buf)
+	reset_synblock(curwin);
 #endif
 
 #ifdef FEAT_FOLDING
diff --git a/src/version.c b/src/version.c
index 1eadaec..35b5198 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    361,
+/**/
     360,
 /**/
     359,