diff --git a/src/GvimExt/GvimExt.reg b/src/GvimExt/GvimExt.reg
index ed0f5af..7409fa0 100644
--- a/src/GvimExt/GvimExt.reg
+++ b/src/GvimExt/GvimExt.reg
@@ -15,6 +15,6 @@
 [HKEY_LOCAL_MACHINE\Software\Vim\Gvim]
    "path"="gvim.exe"
 
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.1a]
-   "DisplayName"="Vim 7.1a: Edit with Vim popup menu entry"
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.1b]
+   "DisplayName"="Vim 7.1b: Edit with Vim popup menu entry"
    "UninstallString"="uninstal.exe"
diff --git a/src/Make_ming.mak b/src/Make_ming.mak
index e09ba8c..0f2022c 100644
--- a/src/Make_ming.mak
+++ b/src/Make_ming.mak
@@ -24,7 +24,7 @@
 #>>>>> choose options:
 # set to yes for a debug build
 DEBUG=no
-# set to SIZE for size, SPEED for speed, MAXSPEED for maximium optimization
+# set to SIZE for size, SPEED for speed, MAXSPEED for maximum optimization
 OPTIMIZE=MAXSPEED
 # set to yes to make gvim, no for vim
 GUI=yes
diff --git a/src/fileio.c b/src/fileio.c
index 39ce7a7..c44a08d 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1271,7 +1271,7 @@
 		    else if (conv_restlen > 0)
 		    {
 			/* Reached end-of-file but some trailing bytes could
-			 * not be converted.  Trucated file? */
+			 * not be converted.  Truncated file? */
 			if (conv_error == 0)
 			    conv_error = linecnt;
 			if (bad_char_behavior != BAD_DROP)
@@ -2192,16 +2192,22 @@
 	if (filesize == 0)
 	    linecnt = 0;
 	if (newfile || read_buffer)
+	{
 	    redraw_curbuf_later(NOT_VALID);
+#ifdef FEAT_DIFF
+	    /* After reading the text into the buffer the diff info needs to
+	     * be updated. */
+	    diff_invalidate(curbuf);
+#endif
+#ifdef FEAT_FOLDING
+	    /* All folds in the window are invalid now.  Mark them for update
+	     * before triggering autocommands. */
+	    foldUpdateAll(curwin);
+#endif
+	}
 	else if (linecnt)		/* appended at least one line */
 	    appended_lines_mark(from, linecnt);
 
-#ifdef FEAT_DIFF
-	/* After reading the text into the buffer the diff info needs to be
-	 * updated. */
-	if (newfile || read_buffer)
-	    diff_invalidate(curbuf);
-#endif
 #ifndef ALWAYS_USE_GUI
 	/*
 	 * If we were reading from the same terminal as where messages go,
@@ -4026,8 +4032,8 @@
     /* TODO: Is it need for MACOS_X? (Dany) */
     /*
      * On macintosh copy the original files attributes (i.e. the backup)
-     * This is done in order to preserve the ressource fork and the
-     * Finder attribute (label, comments, custom icons, file creatore)
+     * This is done in order to preserve the resource fork and the
+     * Finder attribute (label, comments, custom icons, file creator)
      */
     if (backup != NULL && overwriting && !append)
     {
@@ -4041,7 +4047,7 @@
     {
 	if (buf->b_ffname != NULL)
 	    (void)mch_copy_file_attribute(buf->b_ffname, wfname);
-	/* Should copy ressource fork */
+	/* Should copy resource fork */
     }
 #endif
 
@@ -5795,7 +5801,7 @@
 #endif
 	/*
 	 * If the extension doesn't start with '.', and there already is an
-	 * extension, it may need to be tructated
+	 * extension, it may need to be truncated
 	 */
 	else if ((int)STRLEN(e) + extlen > 4)
 	    s = e + 4 - extlen;
@@ -5989,7 +5995,7 @@
     /*
      * With MSDOS-compatible filesystems (crossdos, messydos) it is possible
      * that the name of the "to" file is the same as the "from" file, even
-     * though the names are different. To avoid the chance of accidently
+     * though the names are different. To avoid the chance of accidentally
      * deleting the "from" file (horror!) we lock it during the remove.
      *
      * When used for making a backup before writing the file: This should not
@@ -6058,7 +6064,7 @@
 	errmsg = _("E210: Error reading \"%s\"");
 	to = from;
     }
-#ifndef UNIX	    /* for Unix mch_open() already set ther permission */
+#ifndef UNIX	    /* for Unix mch_open() already set the permission */
     mch_setperm(to, perm);
 #endif
 #ifdef HAVE_ACL
@@ -8402,7 +8408,7 @@
 
 #ifdef FEAT_EVAL
     /*
-     * Quickly return when immdediately aborting on error, or when an interrupt
+     * Quickly return when immediately aborting on error, or when an interrupt
      * occurred or an exception was thrown but not caught.
      */
     if (aborting())
diff --git a/src/gui_riscos.c b/src/gui_riscos.c
index 46e79c0..6adc8b7 100644
--- a/src/gui_riscos.c
+++ b/src/gui_riscos.c
@@ -2873,7 +2873,7 @@
 }
 
 /* Size of buffer has changed.
- * Add one to max since gui.c substracts one more than it should!
+ * Add one to max since gui.c subtracts one more than it should!
  */
     void
 gui_mch_set_scrollbar_thumb(sb, val, size, max)
diff --git a/src/gui_w16.c b/src/gui_w16.c
index 75726c8..f7e6d59 100644
--- a/src/gui_w16.c
+++ b/src/gui_w16.c
@@ -1531,7 +1531,7 @@
 		    s_hwnd,
 		    WS_CHILD | WS_VISIBLE,
 		    CMD_TB_BASE, /*<vn>*/
-		    31,			//number of images in inital bitmap
+		    31,			//number of images in initial bitmap
 		    s_hinst,
 		    IDR_TOOLBAR1,	// id of initial bitmap
 		    NULL,
diff --git a/src/os_os2_cfg.h b/src/os_os2_cfg.h
index 62527a9..039d395 100644
--- a/src/os_os2_cfg.h
+++ b/src/os_os2_cfg.h
@@ -90,7 +90,7 @@
 /* Define as the command at the end of signal handlers ("" or "return 0;").  */
 #define SIGRETURN
 
-/* Define if touuper/tolower only work on lower/upercase characters */
+/* Define if toupper/tolower only work on lower/uppercase characters */
 #undef BROKEN_TOUPPER
 
 /* Define if tgetstr() has a second argument that is (char *) */
