diff --git a/src/fileio.c b/src/fileio.c
index c07accc..37b43a3 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -5162,7 +5162,7 @@
     if (*curbuf->b_p_ft == NUL)
     {
 	if (au_has_group((char_u *)"filetypedetect"))
-	    (void)do_doautocmd((char_u *)"filetypedetect BufRead", FALSE);
+	    (void)do_doautocmd((char_u *)"filetypedetect BufRead", FALSE, NULL);
 	do_modelines(0);
     }
 #endif
@@ -8688,12 +8688,16 @@
     int
 do_doautocmd(
     char_u	*arg,
-    int		do_msg)	    /* give message for no matching autocmds? */
+    int		do_msg,	    /* give message for no matching autocmds? */
+    int		*did_something)
 {
     char_u	*fname;
     int		nothing_done = TRUE;
     int		group;
 
+    if (did_something != NULL)
+	did_something = FALSE;
+
     /*
      * Check for a legal group name.  If not, use AUGROUP_ALL.
      */
@@ -8727,6 +8731,8 @@
 
     if (nothing_done && do_msg)
 	MSG(_("No matching autocommands"));
+    if (did_something != NULL)
+	*did_something = !nothing_done;
 
 #ifdef FEAT_EVAL
     return aborting() ? FAIL : OK;
@@ -8746,6 +8752,7 @@
     buf_T	*buf;
     char_u	*arg = eap->arg;
     int		call_do_modelines = check_nomodeline(&arg);
+    int		did_aucmd;
 
     /*
      * This is a bit tricky: For some commands curwin->w_buffer needs to be
@@ -8762,9 +8769,9 @@
 	    aucmd_prepbuf(&aco, buf);
 
 	    /* execute the autocommands for this buffer */
-	    retval = do_doautocmd(arg, FALSE);
+	    retval = do_doautocmd(arg, FALSE, &did_aucmd);
 
-	    if (call_do_modelines)
+	    if (call_do_modelines && did_aucmd)
 	    {
 		/* Execute the modeline settings, but don't set window-local
 		 * options if we are using the current window for another
