diff --git a/Contents b/Contents
index f6a735a..2a59238 100644
--- a/Contents
+++ b/Contents
@@ -9,10 +9,10 @@
 		messages, shows current file name in window title, on-line
 		help, rectangular cut/paste, etc., etc., etc...
 
-		Version 7.1a.  Also runs under UNIX, MSDOS and other systems.
-		vim71art.tgz  contains the documentation and syntax files.
-		vim71abin.tgz contains the binaries.
-		vim71asrc.tgz contains the sources.
+		Version 7.1b.  Also runs under UNIX, MSDOS and other systems.
+		vim71brt.tgz  contains the documentation and syntax files.
+		vim71bbin.tgz contains the binaries.
+		vim71bsrc.tgz contains the sources.
 		Author: Bram Moolenaar et al.
 
 
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
index ac69d55..1a8833b 100644
--- a/runtime/doc/howto.txt
+++ b/runtime/doc/howto.txt
@@ -1,4 +1,4 @@
-*howto.txt*	For Vim version 7.1a.  Last change: 2006 Apr 02
+*howto.txt*	For Vim version 7.1b.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index d0be37e..942823d 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.1a.  Last change: 2007 Apr 17
+*quickfix.txt*  For Vim version 7.1b.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -715,6 +715,17 @@
 For writing a compiler plugin, see |write-compiler-plugin|.
 
 
+GCC					*quickfix-gcc*	*compiler-gcc*
+
+There's one variable you can set for the GCC compiler:
+
+g:compiler_gcc_ignore_unmatched_lines
+				Ignore lines that don't match any patterns
+				defined for GCC.  Useful if output from
+				commands run from make are generating false
+				positives.
+
+
 MANX AZTEC C				*quickfix-manx* *compiler-manx*
 
 To use Vim with Manx's Aztec C compiler on the Amiga you should do the
diff --git a/runtime/indent/readline.vim b/runtime/indent/readline.vim
index 45c8ab9..6ac2185 100644
--- a/runtime/indent/readline.vim
+++ b/runtime/indent/readline.vim
@@ -1,7 +1,7 @@
 " Vim indent file
-" Language:	    readline configuration file
+" Language:         readline configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2006-12-20
 
 if exists("b:did_indent")
   finish
@@ -10,6 +10,7 @@
 
 setlocal indentexpr=GetReadlineIndent()
 setlocal indentkeys=!^F,o,O,=$else,=$endif
+setlocal nosmartindent
 
 if exists("*GetReadlineIndent")
   finish
diff --git a/runtime/plugin/getscriptPlugin.vim b/runtime/plugin/getscriptPlugin.vim
index 2464c98..b871bc1 100644
--- a/runtime/plugin/getscriptPlugin.vim
+++ b/runtime/plugin/getscriptPlugin.vim
@@ -5,7 +5,7 @@
 "  Installing:	:help glvs-install
 "  Usage:	:help glvs
 "
-" GetLatestVimScripts: 642 1 :AutoInstall: GetLatestVimScripts.vim
+" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim
 "
 " (Rom 15:11 WEB) Again, "Praise the Lord, all you Gentiles!  Let
 " all the peoples praise Him."
diff --git a/src/eval.c b/src/eval.c
index 0fd7744..9429981 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1906,7 +1906,7 @@
 }
 
 /*
- * Skip one (assignable) variable name, includig @r, $VAR, &option, d.key,
+ * Skip one (assignable) variable name, including @r, $VAR, &option, d.key,
  * l[idx].
  */
     static char_u *
@@ -4506,8 +4506,8 @@
 /*
  * Handle sixth level expression:
  *  number		number constant
- *  "string"		string contstant
- *  'string'		literal string contstant
+ *  "string"		string constant
+ *  'string'		literal string constant
  *  &option-name	option value
  *  @r			register contents
  *  identifier		variable value
@@ -7018,7 +7018,7 @@
     char	f_min_argc;	/* minimal number of arguments */
     char	f_max_argc;	/* maximal number of arguments */
     void	(*f_func) __ARGS((typval_T *args, typval_T *rvar));
-				/* implemenation of function */
+				/* implementation of function */
 } functions[] =
 {
     {"add",		2, 2, f_add},
@@ -20668,7 +20668,7 @@
 
 /*
  * Get the short pathname of a file.
- * Returns 1 on success. *fnamelen is 0 for nonexistant path.
+ * Returns 1 on success. *fnamelen is 0 for nonexistent path.
  */
     static int
 get_short_pathname(fnamep, bufp, fnamelen)
@@ -20735,7 +20735,7 @@
 
     do
     {
-	/* Go back one path-seperator */
+	/* Go back one path-separator */
 	while (s > pbuf2 && !after_pathsep(pbuf2, s + 1))
 	{
 	    --s;
@@ -20745,7 +20745,7 @@
 	if (s <= pbuf2)
 	    break;
 
-	/* Remeber the character that is about to be blatted */
+	/* Remember the character that is about to be splatted */
 	ch = *s;
 	*s = 0; /* get_short_pathname requires a null-terminated string */
 
@@ -20761,7 +20761,7 @@
 
     if (plen > 0)
     {
-	/* Remeber the length of the new string.  */
+	/* Remember the length of the new string.  */
 	*fnamelen = len = plen + slen;
 	vim_free(*bufp);
 	if (len > len2)
diff --git a/src/gui_beval.c b/src/gui_beval.c
index 804fa5a..7adde4e 100644
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -68,7 +68,7 @@
 
 	    /*
 	     * Temporarily change the curbuf, so that we can determine whether
-	     * the buffer-local balloonexpr option was set insecurly.
+	     * the buffer-local balloonexpr option was set insecurely.
 	     */
 	    save_curbuf = curbuf;
 	    curbuf = wp->w_buffer;
@@ -250,7 +250,7 @@
 
 #if defined(FEAT_BEVAL_TIP) || defined(PROTO)
 /*
- * Destroy a ballon-eval and free its associated memory.
+ * Destroy a balloon-eval and free its associated memory.
  */
     void
 gui_mch_destroy_beval_area(beval)
@@ -741,7 +741,7 @@
 
 /*
  * The real event handler. Called by pointerEventEH() whenever an event we are
- * interested in ocurrs.
+ * interested in occurs.
  */
 
     static void
diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index c325a92..a175b6e 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -2027,7 +2027,7 @@
     extra = 0;
 
     check_line_range(lo, buf->buf);	    /* inclusive */
-    check_line_range(hi - 1, buf->buf);  /* exclisive */
+    check_line_range(hi - 1, buf->buf);	    /* exclusive */
 
     if (SCHEME_FALSEP(line_list) || SCHEME_NULLP(line_list))
     {
diff --git a/src/memline.c b/src/memline.c
index 5015f49..55d0a32 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -152,7 +152,7 @@
  *
  * If size of block0 changes anyway, adjust MIN_SWAP_PAGE_SIZE in vim.h!!
  *
- * This block is built up of single bytes, to make it portable accros
+ * This block is built up of single bytes, to make it portable across
  * different machines. b0_magic_* is used to check the byte order and size of
  * variables, because the rest of the swap file is not portable.
  */
diff --git a/src/os_amiga.c b/src/os_amiga.c
index 07000dc..f054103 100644
--- a/src/os_amiga.c
+++ b/src/os_amiga.c
@@ -217,7 +217,7 @@
     long    msec;
     int	    ignoreinput;
 {
-#ifndef LATTICE		/* SAS declares void Delay(UNLONG) */
+#ifndef LATTICE		/* SAS declares void Delay(ULONG) */
     void	    Delay __ARGS((long));
 #endif
 
@@ -1145,7 +1145,7 @@
 
     static long
 dos_packet(pid, action, arg)
-    struct MsgPort *pid;    /* process indentifier ... (handlers message port) */
+    struct MsgPort *pid;    /* process identifier ... (handlers message port) */
     long	    action, /* packet type ... (what you want handler to do)   */
 		    arg;    /* single argument */
 {
