updated for version 7.0092
diff --git a/src/fileio.c b/src/fileio.c
index 9ae69cf..dd42fb4 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -7093,6 +7093,17 @@
     }
 }
 
+#if defined(EXITFREE) || defined(PROTO)
+    void
+free_all_autocmds()
+{
+    for (current_augroup = -1; current_augroup < augroups.ga_len;
+							    ++current_augroup)
+	do_autocmd((char_u *)"", TRUE);
+    ga_clear_strings(&augroups);
+}
+#endif
+
 /*
  * Return the event number for event name "start".
  * Return NUM_EVENTS if the event name was not found.
@@ -7632,9 +7643,9 @@
 							 &ap->allow_dirs, TRUE);
 		    if (reg_pat != NULL)
 			ap->reg_prog = vim_regcomp(reg_pat, RE_MAGIC);
+		    vim_free(reg_pat);
 		    if (reg_pat == NULL || ap->reg_prog == NULL)
 		    {
-			vim_free(reg_pat);
 			vim_free(ap->pat);
 			vim_free(ap);
 			return FAIL;