updated for version 7.0217
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 7d6a0eb..00dcea9 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -2612,9 +2612,10 @@
     if (*fname == NUL)
 	EMSG(_(e_argreq));
 
-    /* ":source!" read vi commands */
     else if (eap != NULL && eap->forceit)
-	/* Need to execute the commands directly when:
+	/* ":source!": read Normal mdoe commands
+	 * Need to execute the commands directly.  This is required at least
+	 * for:
 	 * - ":g" command busy
 	 * - after ":argdo", ":windo" or ":bufdo"
 	 * - another command follows
@@ -2768,6 +2769,10 @@
 	goto theend;
     }
 
+#ifdef FEAT_AUTOCMD
+    apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
+#endif
+
 #if defined(WIN32) && defined(FEAT_CSCOPE)
     cookie.fp = fopen_noinh_readbin((char *)fname_exp);
 #else