updated for version 7.1b
diff --git a/README_mac.txt b/README_mac.txt
index 50d939e..56840ae 100644
--- a/README_mac.txt
+++ b/README_mac.txt
@@ -1,4 +1,4 @@
-README_mac.txt for version 7.1a of Vim: Vi IMproved.
+README_mac.txt for version 7.1b of Vim: Vi IMproved.
 
 This file explains the installation of Vim on Macintosh systems.
 See "README.txt" for general information about Vim.
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index f42b1bf..8842e3d 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 7.1a.  Last change: 2007 May 03
+*if_mzsch.txt*  For Vim version 7.1b.  Last change: 2007 May 03
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index 930522d..82235f2 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 7.1a.  Last change: 2006 Mar 06
+*if_perl.txt*   For Vim version 7.1b.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index fd8aea5..f9d1d56 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.1a.  Last change: 2007 Mar 17
+*indent.txt*    For Vim version 7.1b.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -113,7 +113,7 @@
 "<!>", respectively, for those keys.
 
 For an emacs-style indent mode where lines aren't indented every time you
-press Enter but only if you press Tab, I suggest:
+press <Enter> but only if you press Tab, I suggest:
 	:set cinkeys=0{,0},:,0#,!<Tab>,!^F
 You might also want to switch off 'autoindent' then.
 
@@ -515,6 +515,28 @@
 	let g:pyindent_continue = '&sw * 2'
 
 
+SHELL							*ft-sh-indent*
+
+The amount of indent applied under various circumstances in a shell file can
+be configured by setting the following keys in the |Dictionary|
+b:sh_indent_defaults to a specific amount or to a |Funcref| that references a
+function that will return the amount desired:
+
+b:sh_indent_options['default']	Default amount of indent.
+
+b:sh_indent_options['continuation-line']
+				Amount of indent to add to a continued line.
+
+b:sh_indent_options['case-labels']
+				Amount of indent to add for case labels.
+
+b:sh_indent_options['case-statement']
+				Amount of indent to add for case statements.
+
+b:sh_indent_options['case-breaks']
+				Amount of indent to add (or more likely
+				remove) for case breaks.
+
 VERILOG							*ft-verilog-indent*
 
 General block statements such as if, for, case, always, initial, function,
diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt
index 2756f22..8311080 100644
--- a/runtime/doc/os_risc.txt
+++ b/runtime/doc/os_risc.txt
@@ -1,4 +1,4 @@
-*os_risc.txt*   For Vim version 7.1a.  Last change: 2005 Mar 29
+*os_risc.txt*   For Vim version 7.1b.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Thomas Leonard
diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt
index 10d9387..23eee4e 100644
--- a/runtime/doc/pi_getscript.txt
+++ b/runtime/doc/pi_getscript.txt
@@ -1,4 +1,4 @@
-*pi_getscript.txt*  For Vim version 7.1a.  Last change: 2007 Apr 26
+*pi_getscript.txt*  For Vim version 7.1b.  Last change: 2007 May 08
 >
 		GETSCRIPT REFERENCE MANUAL  by Charles E. Campbell, Jr.
 <
@@ -136,7 +136,7 @@
 out-of-date.
 
 The SourceID is extracted by GetLatestVimScripts from the script's page on
-vim.sf.net; whenever its greater than the one stored in the
+vim.sf.net; whenever it's greater than the one stored in the
 GetLatestVimScripts.dat file, the script will be downloaded
 (see |GetLatestVimScripts_dat|).
 
@@ -309,7 +309,7 @@
 
 is a line specifying the latest source-id (src_id).  The source identifier
 numbers are always increasing, hence if the src_id is greater than the one
-recorded for the script in GetLatestVimScripts then its time to download a
+recorded for the script in GetLatestVimScripts then it's time to download a
 newer copy of that script.
 
 GetLatestVimScripts will then download the script and update its internal
@@ -335,6 +335,8 @@
 ==============================================================================
 9. GetLatestVimScripts History		*getscript-history* *glvs-hist* {{{1
 
+v24 Apr 16, 2007 : * removed save&restore of the fo option during script
+                     loading
 v23 Nov 03, 2006 : * ignores comments (#...)
                    * handles vimballs
 v22 Oct 13, 2006 : * supports automatic use of curl if wget is not
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index 75eae34..6c19d9a 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,4 +1,4 @@
-*pi_vimball.txt*	For Vim version 7.1a.  Last change: 2007 Jan 03
+*pi_vimball.txt*	For Vim version 7.1b.  Last change: 2007 May 08
 
 			       ----------------
 			       Vimball Archiver
@@ -90,6 +90,7 @@
 ==============================================================================
 3. Vimball History					*vimball-history* {{{1
 
+	22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
 	21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
 	                    handling problem and it now changes \s to /s
 	20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag
@@ -114,7 +115,7 @@
 	10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
 			    functions.  Included some more settings in them
 			    which frequently cause trouble.
-	9  : Apr 26, 2006 * various changes to support Windows prediliction
+	9  : Apr 26, 2006 * various changes to support Windows predilection
 			    for backslashes and spaces in file and directory
 			    names.
 	7  : Apr 25, 2006 * bypasses foldenable
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index cedd911..fe2ebbe 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt*	For Vim version 7.1a.  Last change: 2006 Sep 29
+*pi_zip.txt*	For Vim version 7.1b.  Last change: 2007 May 08
 
 				+====================+
 				| Zip File Interface |
@@ -6,7 +6,7 @@
 
 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
-Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr {{{1 *zip-copyright*
+Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr *zip-copyright*
            Permission is hereby granted to use and distribute this code,
 	   with or without modifications, provided that this copyright
 	   notice is copied with it. Like anything else that's free,
@@ -18,9 +18,10 @@
 
 ==============================================================================
 1. Contents					*zip* *zip-contents*
-   1. Contents..................................................|zip-contents|
-   2. Usage.....................................................|zip-usage|
-   3. History...................................................|zip-history|
+   1. Contents................................................|zip-contents|
+   2. Usage...................................................|zip-usage|
+   3. Additional Extensions...................................|zip-extension|
+   4. History.................................................|zip-history|
 
 ==============================================================================
 2. Usage					*zip-usage* *zip-manual*
@@ -31,14 +32,45 @@
    also write to the file.  Currently, one may not make a new file in
    zip archives via the plugin.
 
-   The zip program supports one option: >
-   	g:zip_shq
+   OPTIONS
+							*zip_shq*
+   Different operating systems may use one or more shells to execute
+   commands.  Zip will try to guess the correct quoting mechanism to
+   allow spaces and whatnot in filenames; however, if it is incorrectly
+   guessing the quote to use for your setup, you may use >
+	g:zip_shq
 <  which by default is a single quote under Unix (') and a double quote
    under Windows (").  If you'd rather have no quotes, simply set
    g:zip_shq to the empty string (let g:zip_shq= "") in your <.vimrc>.
 
+   							*g:zip_unzipcmd*
+   Use this option to specify the program which does the duty of "unzip".
+   Its used during browsing. By default: >
+   	let g:zip_unzipcmd= "unzip"
+<
+							*g:zip_zipcmd*
+   Use this option to specify the program which does the duty of "zip".
+   Its used during the writing (updating) of a file already in a zip
+   file; by default: >
+   	let g:zip_zipcmd= "zip"
+<
+
 ==============================================================================
-3. History					*zip-history*
+3. Additional Extensions					*zip-extension*
+
+   Apparently there are a number of archivers who generate zip files that
+   don't use the .zip extension (.jar, .xpi, etc).  To handle such files,
+   place a line in your <.vimrc> file: >
+
+	au BufReadCmd *.jar,*.xpi call zip#Browse(expand("<amatch>"))
+<
+   One can simply extend this line to accomdate additional extensions that
+   are actually zip files.
+
+==============================================================================
+4. History					*zip-history* {{{1
+   v14 May 07, 2007 * using b:zipfile instead of w:zipfile to avoid problem
+                      when editing alternate file to bring up a zipfile
    v10 May 02, 2006 * now using "redraw then echo" to show messages, instead
                       of "echo and prompt user"
 		    * g:zip_shq provided to allow for quoting control for the
@@ -62,4 +94,4 @@
    v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
 
 ==============================================================================
-vim:tw=78:ts=8:ft=help
+vim:tw=78:ts=8:ft=help:fdm=marker
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index e782754..c1d5086 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -1,4 +1,4 @@
-*usr_02.txt*	For Vim version 7.1a.  Last change: 2007 Feb 28
+*usr_02.txt*	For Vim version 7.1b.  Last change: 2007 Feb 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index 48b4b92..08c2d29 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -1,4 +1,4 @@
-*usr_44.txt*	For Vim version 7.1a.  Last change: 2006 Apr 24
+*usr_44.txt*	For Vim version 7.1b.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
index adb0961..adbc1a5 100644
--- a/runtime/indent/dictconf.vim
+++ b/runtime/indent/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dict(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2006-12-20
 
 if exists("b:did_indent")
   finish
@@ -9,4 +9,5 @@
 let b:did_indent = 1
 
 setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
+setlocal nosmartindent
 inoremap <buffer> # X#
diff --git a/runtime/spell/en.ascii.spl b/runtime/spell/en.ascii.spl
index 64bff26..b0735c6 100644
--- a/runtime/spell/en.ascii.spl
+++ b/runtime/spell/en.ascii.spl
Binary files differ
diff --git a/runtime/spell/en.latin1.sug b/runtime/spell/en.latin1.sug
index f75c28b..e4800bf 100644
--- a/runtime/spell/en.latin1.sug
+++ b/runtime/spell/en.latin1.sug
Binary files differ
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index 4edff04..ce98ac6 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Dr. Charles E. Campbell, Jr.  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Sep 15, 2006
-" Version:		88
+" Last Change:		Dec 12, 2006
+" Version:		89
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Using the following VIM variables: {{{1
@@ -75,19 +75,22 @@
 syn cluster shColonList	contains=@shCaseList
 syn cluster shCommandSubList	contains=shArithmetic,shDeref,shDerefSimple,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq
 syn cluster shCurlyList	contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
-syn cluster shDblQuoteList	contains=shCommandSub,shDeref,shDerefSimple,shPosnParm,shExSingleQuote,shCtrlSeq
+syn cluster shDblQuoteList	contains=shCommandSub,shDeref,shDerefSimple,shPosnParm,shExSingleQuote,shCtrlSeq,shSpecial
 syn cluster shDerefList	contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPPS
 syn cluster shDerefVarList	contains=shDerefOp,shDerefVarArray,shDerefOpError
 syn cluster shEchoList	contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq
 syn cluster shExprList1	contains=shCharClass,shNumber,shOperator,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
 syn cluster shExprList2	contains=@shExprList1,@shCaseList,shTest
 syn cluster shFunctionList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shFunctionStart,shCtrlSeq
+if exists("b:is_kornshell") || exists("b:is_bash")
+ syn cluster shFunctionList	add=shDblBrace,shDblParen
+endif
 syn cluster shHereBeginList	contains=@shCommandSubList
 syn cluster shHereList	contains=shBeginHere,shHerePayload
 syn cluster shHereListDQ	contains=shBeginHere,@shDblQuoteList,shHerePayload
 syn cluster shIdList	contains=shCommandSub,shWrapLineOperator,shIdWhiteSpace,shDeref,shDerefSimple,shRedir,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq
 syn cluster shLoopList	contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest
-syn cluster shSubShList	contains=@shCaseList
+syn cluster shSubShList	contains=@shCaseList,shOperator
 syn cluster shTestList	contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
 
 
@@ -127,8 +130,16 @@
 syn match   shOption  "\s[\-+][a-zA-Z0-9]\+\>"ms=s+1
 syn match   shOption  "\s--[^ \t$`'"|]\+"ms=s+1
 
+" File Redirection Highlighted As Operators: {{{1
+"===========================================
+syn match      shRedir	"\d\=>\(&[-0-9]\)\="
+syn match      shRedir	"\d\=>>-\="
+syn match      shRedir	"\d\=<\(&[-0-9]\)\="
+syn match      shRedir	"\d<<-\="
+
 " Operators: {{{1
 " ==========
+syn match   shOperator	"<<\|>>"		contained
 syn match   shOperator	"[!&;|]"
 syn match   shOperator	"\[[[^:]\|\]]"
 syn match   shOperator	"!\=="		skipwhite nextgroup=shPattern
@@ -186,7 +197,7 @@
 " ====
 syn match   shCaseBar	contained skipwhite "[^|"`'()]\{-}|"hs=e		nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
 syn match   shCaseStart	contained skipwhite skipnl "("			nextgroup=shCase,shCaseBar
-syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="[^#$()'"]\{-})"ms=s,hs=e  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
+syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="\([^#$()'" \t]\|\\.\)\{-})"ms=s,hs=e  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
 if g:sh_fold_enabled
  syn region  shCaseEsac	fold matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList
 else
@@ -255,21 +266,16 @@
 syn region  shSingleQuote	matchgroup=shOperator start=+'+ end=+'+		contains=shStringSpecial,@Spell
 syn region  shDoubleQuote	matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell
 syn match   shStringSpecial	"[^[:print:]]"	contained
-syn match   shSpecial	"\\[\\\"\'`$()#]"
+syn match   shStringSpecial	"\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shSpecial	"^\%(\\\\\)*\\[\\"'`$()#]"
 
 " Comments: {{{1
 "==========
 syn cluster    shCommentGroup	contains=shTodo,@Spell
 syn keyword    shTodo	contained	COMBAK FIXME TODO XXX
-syn match      shComment	"^#.*$"	contains=@shCommentGroup
-syn match      shComment	"[^0-9]#.*$"	contains=@shCommentGroup
-
-" File Redirection Highlighted As Operators: {{{1
-"===========================================
-syn match      shRedir	"\d\=>\(&[-0-9]\)\="
-syn match      shRedir	"\d\=>>-\="
-syn match      shRedir	"\d\=<\(&[-0-9]\)\="
-syn match      shRedir	"\d<<-\="
+syn match      shComment	"^\s*\zs#.*$"	contains=@shCommentGroup
+syn match      shComment	"#.*$"	contains=@shCommentGroup
 
 " Here Documents: {{{1
 " =========================================
@@ -338,10 +344,11 @@
 
 " Functions: {{{1
 syn keyword shFunctionKey function	skipwhite skipnl nextgroup=shFunctionTwo
-syn match   shFunctionStart	"^\s*{"	contained
+" COMBAK -- look at bash09.  function foo() (line#35) is folding 38 lines.  Not being terminated properly
+"syn match   shFunctionStart	"{"	contained
 if g:sh_fold_enabled
- syn region shFunctionOne transparent fold	start="^\s*\h\w*\s*()\_s*\ze{"    matchgroup=shFunctionStart end="}"	contains=@shFunctionList
- syn region shFunctionTwo transparent fold	start="\h\w*\s*\%(()\)\=\_s*\ze{" matchgroup=shFunctionStart end="}"	contains=shFunctionKey,@shFunctionList contained
+ syn region shFunctionOne transparent fold	start="^\s*\h\w*\s*()\_s*\ze{"    matchgroup=shFunctionStart end="}"	contains=@shFunctionList			skipwhite skipnl nextgroup=shFunctionStart
+ syn region shFunctionTwo transparent fold	start="\h\w*\s*\%(()\)\=\_s*\ze{" matchgroup=shFunctionStart end="}"	contains=shFunctionKey,@shFunctionList contained	skipwhite skipnl nextgroup=shFunctionStart
 else
  syn region shFunctionOne transparent	start="^\s*\h\w*\s*()\_s*\ze{"    matchgroup=shFunctionStart end="}"	contains=@shFunctionList
  syn region shFunctionTwo transparent	start="\h\w*\s*\%(()\)\=\_s*\ze{" matchgroup=shFunctionStart end="}"	contains=shFunctionKey,@shFunctionList contained
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 *) */