updated for version 7.0181
diff --git a/src/fileio.c b/src/fileio.c
index c5c9262..2236bbc 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -6158,7 +6158,8 @@
     {
 	retval = 1;
 
-	/* set b_mtime to stop further warnings */
+	/* set b_mtime to stop further warnings (e.g., when executing
+	 * FileChangedShell autocmd) */
 	if (stat_res < 0)
 	{
 	    buf->b_mtime = 0;
@@ -6341,7 +6342,7 @@
 
     if (reload)
 	/* Reload the buffer. */
-	buf_reload(buf);
+	buf_reload(buf, orig_mode);
 
 #ifdef FEAT_GUI
     /* restore this in case an autocommand has set it; it would break
@@ -6355,16 +6356,18 @@
 /*
  * Reload a buffer that is already loaded.
  * Used when the file was changed outside of Vim.
+ * "orig_mode" is buf->b_orig_mode before the need for reloading was detected.
+ * buf->b_orig_mode may have been reset already.
  */
     void
-buf_reload(buf)
+buf_reload(buf, orig_mode)
     buf_T	*buf;
+    int		orig_mode;
 {
     exarg_T	ea;
     pos_T	old_cursor;
     linenr_T	old_topline;
     int		old_ro = buf->b_p_ro;
-    int		orig_mode = buf->b_orig_mode;
     buf_T	*savebuf;
     int		saved = OK;
 #ifdef FEAT_AUTOCMD