diff --git a/README_amisrc.txt b/README_amisrc.txt
index c368ee9759dfcf5b7374f110caa70184bf37574d..ca8c3a2ef26be0f57dbb719baa3768672ec5119a 100644
--- a/README_amisrc.txt
+++ b/README_amisrc.txt
@@ -1,4 +1,4 @@
-README_amisrc.txt for version 7.1a of Vim: Vi IMproved.
+README_amisrc.txt for version 7.1b of Vim: Vi IMproved.
 
 See "README.txt" for general information about Vim.
 See "README_ami.txt" for installation instructions for the Amiga.
diff --git a/README_vms.txt b/README_vms.txt
index 7a1329d7e867bd0f95603d9cb5c6c2366d35a567..42eb3818eb4f2a5f82f214a758fa969bbd5a0c54 100644
--- a/README_vms.txt
+++ b/README_vms.txt
@@ -1,4 +1,4 @@
-README_vms.txt for version 7.1a of Vim: Vi IMproved.
+README_vms.txt for version 7.1b of Vim: Vi IMproved.
 
 This file explains the installation of Vim on VMS systems.
 See "README.txt" in the runtime archive for information about Vim.
diff --git a/README_w32s.txt b/README_w32s.txt
index 5884be99861b834a7fccb7b7a726bccbc72b0ce7..b7dc0c5bdffa4e1aeee9bde04f775b132658061e 100644
--- a/README_w32s.txt
+++ b/README_w32s.txt
@@ -1,4 +1,4 @@
-README_w32s.txt for version 7.1a of Vim: Vi IMproved.
+README_w32s.txt for version 7.1b of Vim: Vi IMproved.
 
 This archive contains the gvim.exe that was specifically compiled for use in
 the Win32s subsystem in MS-Windows 3.1 and 3.11.
diff --git a/runtime/autoload/spellfile.vim b/runtime/autoload/spellfile.vim
index 6fedac190270ea966215476ba7c7e2c47db421de..b9e17f1f1494fe31db2bd2067eb85f343993a386 100644
--- a/runtime/autoload/spellfile.vim
+++ b/runtime/autoload/spellfile.vim
@@ -1,6 +1,6 @@
 " Vim script to download a missing spell file
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2007 May 06
+" Last Change:	2007 May 08
 
 if !exists('g:spellfile_URL')
   let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
@@ -145,6 +145,12 @@ endfunc
 
 " Read "fname" from the server.
 function! spellfile#Nread(fname)
+  " We do our own error handling, don't want a window for it.
+  if exists("g:netrw_use_errorwindow")
+    let save_ew = g:netrw_use_errorwindow
+  endif
+  let g:netrw_use_errorwindow=0
+
   if g:spellfile_URL =~ '^ftp://'
     " for an ftp server use a default login and password to avoid a prompt
     let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '')
@@ -153,4 +159,10 @@ function! spellfile#Nread(fname)
   else
     exe 'Nread ' g:spellfile_URL . '/' . a:fname
   endif
+
+  if exists("save_ew")
+    let g:netrw_use_errorwindow = save_ew
+  else
+    unlet g:netrw_use_errorwindow
+  endif
 endfunc
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index dd57c5c8430d939685770f5efad7758e93f84769..e68e3e89e9641b926a0ac40455acec21afbdad54 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt*     For Vim version 7.1a.  Last change: 2005 Mar 29
+*farsi.txt*     For Vim version 7.1b.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Mortaza Ghassab Shiran
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 4b8bfafd1289bad07196dbb7584d53a59bdbad6e..ada9d5087c916d253ca1739cf70db68131f204e7 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 7.1a.  Last change: 2007 Mar 24
+*filetype.txt*  For Vim version 7.1b.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -423,7 +423,8 @@ Global mappings:
 			same as the local <Leader>o described above.
 
 Variables:
-g:changelog_timeformat	The date (and time) format used in ChangeLog entries.
+g:changelog_timeformat  Deprecated; use g:changelog_dateformat instead.
+g:changelog_dateformat	The date (and time) format used in ChangeLog entries.
 			The format accepted is the same as for the
 			|strftime()| function.
 			The default is "%Y-%m-%d" which is the standard format
@@ -473,6 +474,14 @@ g:changelog_date_entry_search
 				|2003-01-14  Full Name  <user@host>
 <			and some similar formats.
 
+g:changelog_date_end_entry_search
+			The search pattern to use when searching for the end
+			of a date-entry.
+			The same tokens that can be used for
+			g:changelog_new_date_format can be used here as well.
+			The default is '^\s*$' which finds lines that contain
+			only whitespace or are completely empty.
+
 The Changelog entries are inserted where they add the least amount of text.
 After figuring out the current date and user, the file is searched for an
 entry beginning with the current date and user and if found adds another item
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index 09d6cbdca160fc13c603e8db61dea18a9bb015e8..2e361b040d84048be9d2af9bbdf3db97234811bd 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -1,4 +1,4 @@
-*os_dos.txt*    For Vim version 7.1a.  Last change: 2006 Mar 30
+*os_dos.txt*    For Vim version 7.1b.  Last change: 2006 Mar 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index bf66f9dfd83d7ca41c87a9a8532f9e00d134633b..57018603aeda7d1817918620353ca3ef3dba6a8e 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt*  For Vim version 7.1a.  Last change: 2007 Apr 22
+*os_win32.txt*  For Vim version 7.1b.  Last change: 2007 Apr 22
 
 
 		  VIM REFERENCE MANUAL    by George Reilly
diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt
index b075873c4a64b8d947fb51e139f04ca9811ba9f3..ce6fb5cc49cb963d37d6011f98f9238df64fe81c 100644
--- a/runtime/doc/pi_spec.txt
+++ b/runtime/doc/pi_spec.txt
@@ -1,4 +1,4 @@
-*pi_spec.txt*   For Vim version 7.1a.  Last change: 2006 Apr 24
+*pi_spec.txt*   For Vim version 7.1b.  Last change: 2006 Apr 24
 
 by Gustavo Niemeyer ~
 
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index 2cf0bec73532d9020768e7f8c29ae123f25198c2..da57596b1fb69babba6bd2622dce2432dca5cdeb 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -1,4 +1,4 @@
-*scroll.txt*    For Vim version 7.1a.  Last change: 2006 Aug 27
+*scroll.txt*    For Vim version 7.1b.  Last change: 2006 Aug 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index a1c85f2fc29bf6d5f4a03feaa37b6db2ead3595c..dcca05200ddce97daf02f3cadc730ab1f6141e50 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.1a.  Last change: 2007 May 05
+*todo.txt*      For Vim version 7.1b.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -35,6 +35,9 @@ Patch to make virtcol([123, '$']) do the right thing. (Michael Schaap)
 Insert mode completion: CTRL-N and CTRL-P work differently and they both don't
 work as expected. (Bernhard Walle, 2007 Feb 27)
 
+When 'rightleft' is set the completion menu is positioned wrong. (Baha-Eddine
+MOKADEM)
+
 glob() doesn't work correctly with single quotes and 'shell' set to /bin/sh.
 (Adri Verhoef, Charles Campbell 2007 Mar 26)
 
@@ -94,6 +97,10 @@ See remarks from Adri, 2007 Feb 9.
 
 When opening quickfix window, disable spell checking?
 
+Windows 98: pasting from the clipboard with text from another application has
+a trailing NUL.  (Joachim Hofmann)  Perhaps the length specified for CF_TEXT
+isn't right?
+
 Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for characters
 with umlaut. (Joachim Hofmann)  toupper_tab[] and tolower_tab[] are not filled
 properly?
@@ -201,6 +208,8 @@ C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)
 
 ":lockvar" should use copyID to avoid endless loop.
 
+Patch to use xterm mouse codes for screen. (Micah Cowan, 2007 May 8)
+
 Gvim: dialog for closing Vim should check if Vim is busy writing a file.  Then
 use a different dialog: "busy saving, really quit? yes / no".
 
@@ -365,9 +374,6 @@ GDK_WINDOW_STATE_MAXIMIZED) and set it again?
 Another resizing problem when setting 'columns' and 'lines' to a very large
 number. (Tony Mechelynck, 2007 Feb 6)
 
-Mutt files are not always recognized.  Change pattern to include
-non-alphanumeric characters. (Gary Johnson, 2006 Jul 25)
-
 Problem with using :redir in user command completion function? (Hari Krishna
 Dara, 2006 June 21)
 
@@ -1581,7 +1587,7 @@ Tab pages:
 8   :tabmove -N	 move tab page N pages backward
 7   :tabdup	 duplicate the tab with all its windows.
 7   Option to put tab line at the left or right?  Need an option to specify
-    its witdh.  It's like a separate window with ":tabs" output.
+    its width.  It's like a separate window with ":tabs" output.
 7   Add local variables for each tab page?
 8   Add local options for each tab page?  E.g., 'diffopt' could differ between
     tab pages.
diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt
index 29a9ec8e44462b1c67c518ff04bee52512a37b06..af50d2886c9a548aba7f42eccfc9bd4a826636c4 100644
--- a/runtime/doc/usr_04.txt
+++ b/runtime/doc/usr_04.txt
@@ -1,4 +1,4 @@
-*usr_04.txt*	For Vim version 7.1a.  Last change: 2006 Jun 21
+*usr_04.txt*	For Vim version 7.1b.  Last change: 2006 Jun 21
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index a9780c0d3f33543e1163639b70b3ab8f8fa2c084..ee90eda97e034cdbc483af5251d4b4501a81abfd 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt*	For Vim version 7.1a.  Last change: 2006 Jul 10
+*usr_05.txt*	For Vim version 7.1b.  Last change: 2006 Jul 10
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt
index 919cd4fe58504540181145b050de15bc156984e0..944a21b51d0cb18d215fefb753666ed82a5a2533 100644
--- a/runtime/doc/usr_12.txt
+++ b/runtime/doc/usr_12.txt
@@ -1,4 +1,4 @@
-*usr_12.txt*	For Vim version 7.1a.  Last change: 2006 Nov 18
+*usr_12.txt*	For Vim version 7.1b.  Last change: 2006 Nov 18
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 682dcfaeedb55532081f48504ff765deebc6383a..fe395dd95bddb12b258064439983186d344e9e12 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.1a.  Last change: 2007 May 05
+*version7.txt*  For Vim version 7.1b.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1007,15 +1007,15 @@ MatchParen              matching parens |pi_paren.txt| |hl-MatchParen|
 
 New items in search patterns: ~
 |/\%d| \%d123		search for character with decimal number
-|/\]|  [\d123]		idem, in a colletion
+|/\]|  [\d123]		idem, in a collection
 |/\%o| \%o103		search for character with octal number
-|/\]|  [\o1o3]		idem, in a colletion
+|/\]|  [\o1o3]		idem, in a collection
 |/\%x| \%x1a		search for character with 2 pos. hex number
-|/\]|  [\x1a]		idem, in a colletion
+|/\]|  [\x1a]		idem, in a collection
 |/\%u| \%u12ab		search for character with 4 pos. hex number
-|/\]|  [\u12ab]		idem, in a colletion
+|/\]|  [\u12ab]		idem, in a collection
 |/\%U| \%U1234abcd	search for character with 8 pos. hex number
-|/\]|  [\U1234abcd]	idem, in a colletion
+|/\]|  [\U1234abcd]	idem, in a collection
 			    (The above partly by Ciaran McCreesh)
 
 |/[[=| [[=a=]]		an equivalence class (only for latin1 characters)
@@ -2795,7 +2795,7 @@ move the cursor left.
 
 Prevent that using CTRL-R = in Insert mode can start Visual mode.
 
-Fixed a crash that occured when in Insert mode with completion active and a
+Fixed a crash that occurred when in Insert mode with completion active and a
 mapping caused edit() to be called recursively.
 
 When using CTRL-O in Insert mode just after the last character while
@@ -2989,21 +2989,29 @@ Added setting 'mouse' in vimrc_example.vim.
 When building with MZscheme also look for include files in the "plt"
 subdirectory.  That's where they are for FreeBSD.
 
+The Ruby interface module is now called "Vim" instead of "VIM".  But "VIM" is
+an alias, so it's backwards compatible. (Tim Pope)
+
 
 Added							*added-7.1*
 -----
 
 New syntax files:
+	/var/log/messages (Yakov Lerner)
 	AutoIt v3 (Jared Breland)
 	Bazaar commit file "bzr". (Dmitry Vasiliev)
+	Cdrdao TOC (Nikolai Weibull)
 	Cmusrc (Nikolai Weibull)
 	FreeBasic (Mark Manning)
 	Hamster (David Fishburn)
 	IBasic (Mark Manning)
-	initng (Elan Ruusamae)
-	/var/log/messages (Yakov Lerner)
 	Privoxy actions file (Doug Kearns)
 	Streaming Descriptors "sd" (Puria Nafisi Azizi)
+	initng (Elan Ruusamae)
+	Autohotkey (Nikolai Weibull)
+	Framescript (Nikolai Weibull)
+	Ldapconf (Nikolai Weibull)
+	Litestep (Nikolai Weibull)
 
 New tutor files:
 	Hungarian (Arpad Horvath)
@@ -4556,4 +4564,34 @@ Solution:   Embed the linker manifest file into the resources of GvimExt.dll.
 Files:	    src/GvimExt/Makefile
 
 
+Fixes after Vim 7.1a BETA:
+
+The extra archive had CVS directories included below "farsi" and
+"runtime/icons".  CVS was missing the farsi icon files.
+
+Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel
+Drake)
+
+Mac: "make install" didn't copy rgb.txt.
+
+When editing a compressed file while there are folds caused "ml_get" errors
+and some lines could be missing.  When decompressing failed option values were
+not restored.
+
+
+Patch 7.1a.001
+Problem:    Crash when downloading a spell file.  (Szabolcs Horvat)
+Solution:   Avoid that did_set_spelllang() is used recursively when a new
+	    window is opened for the download.
+	    Also avoid wiping out the wrong buffer.
+Files:	    runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c,
+            src/spell.c
+
+Patch 7.1a.002 (extra)
+Problem:    Compilation error with MingW.
+Solution:   Check for LPTOOLTIPTEXT to be defined.
+Files:	    src/gui_w32.c
+
+
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/workshop.txt b/runtime/doc/workshop.txt
index a0502cc5b8fd50ea3edf185da3e8f04c5a3618c4..b7ecf7c0ee35b01833799fc83d90aca995743172 100644
--- a/runtime/doc/workshop.txt
+++ b/runtime/doc/workshop.txt
@@ -1,4 +1,4 @@
-*workshop.txt*  For Vim version 7.1a.  Last change: 2006 Apr 24
+*workshop.txt*  For Vim version 7.1b.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/spell/pt/pt_BR.diff b/runtime/spell/pt/pt_BR.diff
index dc7825bf4ba0740bb4153c881556623d38541688..4dc7f1b98a451e470cdd1e4736789385b78ebade 100644
--- a/runtime/spell/pt/pt_BR.diff
+++ b/runtime/spell/pt/pt_BR.diff
@@ -8,5 +8,5 @@
 + LOW  Яабвгдежзийклмнопрстуфхцшщъыьэюя
 + UPP  ЯАБВГДЕЖЗИЙКЛМНОПРСТУФХЦШЩЪЫЬЭЮя
 + 
-+ MIDWORD	'
++ MIDWORD	'-.
   
diff --git a/src/GvimExt/gvimext.cpp b/src/GvimExt/gvimext.cpp
index dbd769abed331adaa383cc426e7fcbec91fc10e8..a18eb0bbb5d438078dc822dd8923adf0107fa361 100644
--- a/src/GvimExt/gvimext.cpp
+++ b/src/GvimExt/gvimext.cpp
@@ -575,7 +575,7 @@ STDMETHODIMP CShellExt::QueryContextMenu(HMENU hMenu,
 
     // Initialize m_cntOfHWnd to 0
     m_cntOfHWnd = 0;
-    // Retieve all the vim instances
+    // Retrieve all the vim instances
     EnumWindows(EnumWindowsProc, (LPARAM)this);
 
     if (cbFiles > 1)
diff --git a/src/gui_at_sb.h b/src/gui_at_sb.h
index 0d3d1967b79c47edbc1bbb960982243cce1364ad..90940f5529fcf0b215c6f65e5aaa3ef93d095ed3 100644
--- a/src/gui_at_sb.h
+++ b/src/gui_at_sb.h
@@ -110,7 +110,7 @@ typedef struct
     float	  max;		/* Maximum value for top */
     Dimension	  length;	/* either height or width */
     Dimension	  thickness;	/* either width or height */
-    Dimension	  min_thumb;	/* minium size for the thumb. */
+    Dimension	  min_thumb;	/* minimum size for the thumb. */
 
      /* private */
     XtIntervalId  timer_id;	/* autorepeat timer; remove on destruction */
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 04ee0a0f4fb5ab362be1c5bc32c75fd391c85963..523733926acac8c2b85b45ba02ed061b786bc70f 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -36,6 +36,9 @@
 # ifdef bindtextdomain
 #  undef bindtextdomain
 # endif
+# ifdef bindtextdomain_codeset
+#  undef bindtextdomain_codeset
+# endif
 # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS)
 #  define ENABLE_NLS	/* so the texts in the dialog boxes are translated */
 # endif
@@ -1566,7 +1569,7 @@ selection_get_cb(GtkWidget	    *widget,
 gui_mch_init_check(void)
 {
 #ifndef HAVE_GTK2
-    /* This is needed to make the locale handling consistant between the GUI
+    /* This is needed to make the locale handling consistent between the GUI
      * and the rest of VIM. */
     gtk_set_locale();
 #endif
@@ -1638,7 +1641,7 @@ process_motion_notify(int x, int y, GdkModifierType state)
     /* translate modifier coding between the main engine and GTK */
     vim_modifiers = modifiers_gdk2mouse(state);
 
-    /* inform the editor engine about the occurence of this event */
+    /* inform the editor engine about the occurrence of this event */
     gui_send_mouse_event(button, x, y, FALSE, vim_modifiers);
 
     if (gtk_main_level() > 0)
@@ -2604,7 +2607,7 @@ mainwin_realize(GtkWidget *widget, gpointer data)
 	int	    number_sizes;
 	/*
 	 * Adjust the icon to the preferences of the actual window manager.
-	 * This is once again a workaround for a defficiency in GTK+ 1.2.
+	 * This is once again a workaround for a deficiency in GTK+ 1.2.
 	 */
 	xdisplay = GDK_WINDOW_XDISPLAY(gui.mainwin->window);
 	root_window = XRootWindow(xdisplay, DefaultScreen(xdisplay));
@@ -2707,7 +2710,7 @@ mainwin_screen_changed_cb(GtkWidget  *widget,
 	return;
 
     /*
-     * Recreate the invisble mouse cursor.
+     * Recreate the invisible mouse cursor.
      */
     if (gui.blank_pointer != NULL)
 	gdk_cursor_unref(gui.blank_pointer);
@@ -2971,7 +2974,7 @@ update_window_manager_hints(int force_width, int force_height)
 # endif
 
     /* GtkSockets use GtkPlug's [gui,mainwin] min-size hints to determine
-     * their actual widget size.  When we set our size ourselve (e.g.,
+     * their actual widget size.  When we set our size ourselves (e.g.,
      * 'set columns=' or init. -geom) we briefly set the min. to the size
      * we wish to be instead of the legitimate minimum so that we actually
      * resize correctly.
@@ -3956,11 +3959,11 @@ mainwin_destroy_cb(GtkObject *object, gpointer data)
  * hints (and thus the required size from -geom), but that after that we
  * put the hints back to normal (the actual minimum size) so we may
  * subsequently be resized smaller.  GtkSocket (the parent end) uses the
- * plug's window 'min hints to set *it's* minum size, but that's also the
+ * plug's window 'min hints to set *it's* minimum size, but that's also the
  * only way we have of making ourselves bigger (by set lines/columns).
  * Thus set hints at start-up to ensure correct init. size, then a
  * second after the final attempt to reset the real minimum hinst (done by
- * scrollbar init.), actually do the sttandard hinst and stop the timer.
+ * scrollbar init.), actually do the standard hinst and stop the timer.
  * We'll not let the default hints be set while this timer's active.
  */
 /*ARGSUSED*/
@@ -5430,7 +5433,7 @@ gui_mch_get_color(char_u *name)
 	/*
 	 * Since we have already called gtk_set_locale here the bugger
 	 * XParseColor will accept only explicit color names in the language
-	 * of the current locale.  However this will interferre with:
+	 * of the current locale.  However this will interfere with:
 	 * 1. Vim's global startup files
 	 * 2. Explicit color names in .vimrc
 	 *
@@ -6359,7 +6362,7 @@ input_timer_cb(gpointer data)
 {
     int *timed_out = (int *) data;
 
-    /* Just inform the caller about the occurence of it */
+    /* Just inform the caller about the occurrence of it */
     *timed_out = TRUE;
 
     if (gtk_main_level() > 0)
diff --git a/src/gui_x11.c b/src/gui_x11.c
index 01f4e0f5cd6e1156d67630fa8ea07cf100f55320..3f2a256756e176cf289c90ba4243d53956d38e2b 100644
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -643,7 +643,7 @@ gui_x11_expose_cb(w, dud, event, dum)
 /*
  * This function fills in the XRectangle object with the current x,y
  * coordinates and height, width so that an XtVaSetValues to the same shell of
- * those resources will restore the window to its formar position and
+ * those resources will restore the window to its former position and
  * dimensions.
  *
  * Note: This function may fail, in which case the XRectangle will be
diff --git a/src/main.c b/src/main.c
index 3426dce225266b9c077a8a1de9abecf8d1e342d7..438cb997efd3268414284c065530c41b6a86c5ee 100644
--- a/src/main.c
+++ b/src/main.c
@@ -745,7 +745,7 @@ main
      * switch to another screen. It must be done after settmode(TMODE_RAW),
      * because we want to react on a single key stroke.
      * Call settmode and starttermcap here, so the T_KS and T_TI may be
-     * defined by termcapinit and redifined in .exrc.
+     * defined by termcapinit and redefined in .exrc.
      */
     settmode(TMODE_RAW);
     TIME_MSG("setting raw mode");
@@ -2253,7 +2253,7 @@ check_tty(parmp)
 	 * output coming to the console and XOpenDisplay fails, I get vim
 	 * trying to start with input/output to my console tty.  This fills my
 	 * input buffer so fast I can't even kill the process in under 2
-	 * minutes (and it beeps continuosly the whole time :-)
+	 * minutes (and it beeps continuously the whole time :-)
 	 */
 	if (usingNetbeans && (!parmp->stdout_isatty || !input_isatty))
 	{
@@ -2808,7 +2808,7 @@ main_start_gui()
 }
 
 /*
- * Get an evironment variable, and execute it as Ex commands.
+ * Get an environment variable, and execute it as Ex commands.
  * Returns FAIL if the environment variable was not executed, OK otherwise.
  */
     int
diff --git a/src/memfile.c b/src/memfile.c
index 0c4d01cc0cc880152658a16cfad00da7ce152de9..f1e85fc281c9038bafec41a9ba24450c27c6c7c1 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -1097,7 +1097,7 @@ mf_write(mfp, hp)
 	{
 	    /*
 	     * Avoid repeating the error message, this mostly happens when the
-	     * disk is full. We give the message again only after a succesful
+	     * disk is full. We give the message again only after a successful
 	     * write or when hitting a key. We keep on trying, in case some
 	     * space becomes available.
 	     */
@@ -1189,7 +1189,7 @@ mf_trans_add(mfp, hp)
 }
 
 /*
- * Lookup a tranlation from the trans lists and delete the entry
+ * Lookup a translation from the trans lists and delete the entry
  *
  * Return the positive new number when found, the old number when not found
  */
diff --git a/src/po/sv.po b/src/po/sv.po
index e6bf7ee8a528b2c03d62942420f434fae3231a2c..6e44881ec6f9113cc36aa505da4edf29b401e431 100644
--- a/src/po/sv.po
+++ b/src/po/sv.po
@@ -1,12 +1,12 @@
 # Swedish translation for Vim.
-# Copyright (C) 2003-2006 Free Software Foundation, Inc.
-# Johan Svedberg <johan@svedberg.com>, 2003-2006.
+# Copyright (C) 2003-2007 Free Software Foundation, Inc.
+# Johan Svedberg <johan@svedberg.com>, 2003-2007.
 msgid ""
 msgstr ""
-"Project-Id-Version: Vim 7\n"
+"Project-Id-Version: Vim 7.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-10 17:24+0200\n"
-"PO-Revision-Date: 2006-04-11 01:08+0200\n"
+"POT-Creation-Date: 2007-05-09 14:27+0200\n"
+"PO-Revision-Date: 2007-05-09 14:52%z\n"
 "Last-Translator: Johan Svedberg <johan@svedberg.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
@@ -191,6 +191,9 @@ msgstr "E98: Kan inte l
 msgid "E99: Current buffer is not in diff mode"
 msgstr "E99: Aktuell buffert дr inte i skiljelдge"
 
+msgid "E793: No other buffer in diff mode is modifiable"
+msgstr "E793: Ingen annan buffert i skiljelдge дr дndringsbar"
+
 msgid "E100: No other buffer in diff mode"
 msgstr "E100: Ingen annan buffert i skiljelдge"
 
@@ -206,6 +209,9 @@ msgstr "E102: Kan inte hitta buffert \"%s\""
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: Buffert \"%s\" дr inte i skiljelдge"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: Buffert дndrades ovдntat"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: Escape inte tillеtet i digraf"
 
@@ -215,12 +221,15 @@ msgstr "E544: Keymap-fil hittades inte"
 msgid "E105: Using :loadkeymap not in a sourced file"
 msgstr "E105: Anvдndning av :loadkeymap utanfцr en kцrd fil"
 
+msgid "E791: Empty keymap entry"
+msgstr "E791: Tomt tangentbords-post"
+
 msgid " Keyword completion (^N^P)"
 msgstr " Nyckelordskomplettering (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X-lдge (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X-lдge (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " Helradskomplettering (^L^N^P)"
@@ -252,8 +261,8 @@ msgstr " Anv
 msgid " Omni completion (^O^N^P)"
 msgstr " Omnikomplettering (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " Stavningsfцrslag (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " Stavningsfцrslag (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " Lokal nyckelordskomplettering (^N^P)"
@@ -488,6 +497,22 @@ msgstr "E723: Saknar slut p
 msgid "E724: variable nested too deep for displaying"
 msgstr "E724: variabel nдstlad fцr djupt fцr att visas"
 
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Okдnd funktion: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: Fцr fе argument till funktion: %s"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: Anvдnder inte <SID> i ett skriptsammanhang: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: Anropar tabell-funktion utan Tabell: %s"
+
 msgid "E699: Too many arguments"
 msgstr "E699: Fцr mеnga argument"
 
@@ -524,8 +549,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "anropade inputrestore() oftare дn inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: Omrеde otillеtet"
+msgid "E786: Range not allowed"
+msgstr "E786: Omrеde otillеtet"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: Ogiltig typ fцr len()"
@@ -594,6 +619,10 @@ msgstr "E705: Variabelnamn konflikterar med existerande funktion %s"
 msgid "E706: Variable type mismatch for: %s"
 msgstr "E706: Variabeltyp matchar inte fцr: %s"
 
+#, c-format
+msgid "E795: Cannot delete variable %s"
+msgstr "E795: Kan inte ta bort variabel %s"
+
 #, c-format
 msgid "E741: Value is locked: %s"
 msgstr "E741: Vдrde дr lеst: %s"
@@ -858,6 +887,7 @@ msgstr " m
 msgid " FAILED"
 msgstr " MISSLYCKADES"
 
+#. avoid a wait_return for this message, it's annoying
 #, c-format
 msgid "E137: Viminfo file is not writable: %s"
 msgstr "E137: Viminfo-fil дr inte skrivbar: %s"
@@ -1383,6 +1413,9 @@ msgstr "E602: :endtry utan :try"
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction inte inom en funktion"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Inte tillеtet att redigera en annan buffert nu"
+
 msgid "tagname"
 msgstr "taggnamn"
 
@@ -1427,6 +1460,9 @@ msgstr "
 msgid "is not a file"
 msgstr "дr inte en fil"
 
+msgid "is a device (disabled with 'opendevice' option"
+msgstr "дr en enhet (inaktiverad med 'opendevice'-flagga"
+
 msgid "[New File]"
 msgstr "[Ny fil]"
 
@@ -1524,6 +1560,9 @@ msgstr "Delvisa skrivningar till
 msgid "is not a file or writable device"
 msgstr "дr inte en fil eller skrivbar enhet"
 
+msgid "writing to device disabled with 'opendevice' option"
+msgstr "skriver till en enhet inaktiverad med 'opendevice'-flagga"
+
 msgid "is read-only (add ! to override)"
 msgstr "дr skrivskyddad (lдgg till ! fцr att tvinga)"
 
@@ -2480,12 +2519,33 @@ msgstr "<f
 msgid "no such window"
 msgstr "inget sеdant fцnster"
 
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ mеste vara en instans av String"
+
 msgid ""
 "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
 "E266: Tyvдrr, detta kommandot дr inaktiverat, Ruby-biblioteket kunde inte "
 "lдsas in."
 
+msgid "E267: unexpected return"
+msgstr "E267: ovдntad returnering"
+
+msgid "E268: unexpected next"
+msgstr "E268: ovдntad next"
+
+msgid "E269: unexpected break"
+msgstr "E269: ovдntad break"
+
+msgid "E270: unexpected redo"
+msgstr "E270: ovдntad redo"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: retry utanfцr rescue-block"
+
+msgid "E272: unhandled exception"
+msgstr "E272: ohanterat undantag"
+
 #, c-format
 msgid "E273: unknown longjmp status %d"
 msgstr "E273: okдnt longjmp-status %d"
@@ -2755,8 +2815,12 @@ msgstr ""
 "\n"
 "     eller:"
 
-msgid "where case is ignored prepend / to make flag upper case"
-msgstr "dдr storlek ignoreras bцrja med / fцr att gцra flagga versal"
+msgid ""
+"\n"
+"Where case is ignored prepend / to make flag upper case"
+msgstr ""
+"\n"
+"Dдr storlek ignoreras bцrja med / fцr att gцra flagga versal"
 
 msgid ""
 "\n"
@@ -2824,8 +2888,8 @@ msgstr "-C\t\t\tKompatibelt med Vi: 'compatible'"
 msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
 msgstr "-N\t\t\tInte fullt Vi-kompatibel: 'nocompatible'"
 
-msgid "-V[N]\t\tVerbose level"
-msgstr "-V[N]\t\tMеngordigt lдge"
+msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]"
+msgstr "-V[N][fnamn]\t\tVar mеngordig [nivе N] [logga meddelanden till fnamn]"
 
 msgid "-D\t\t\tDebugging mode"
 msgstr "-D\t\t\tFelsцkningslдge"
@@ -3256,6 +3320,9 @@ msgstr ""
 ",\n"
 "eller sе har filen blivit skadad."
 
+msgid " has been damaged (page size is smaller than minimum value).\n"
+msgstr " har skadats (sid-storlek дr mindre дn minimumvдrdet).\n"
+
 #, c-format
 msgid "Using swap file \"%s\""
 msgstr "Anvдnder vдxlingsfil \"%s\""
@@ -3597,6 +3664,10 @@ msgstr "E328: Meny existerar bara i ett annat l
 msgid "E329: No menu \"%s\""
 msgstr "E329: Ingen meny \"%s\""
 
+#. Only a mnemonic or accelerator is not valid.
+msgid "E792: Empty menu name"
+msgstr "E792: Tomt menynamn"
+
 msgid "E330: Menu path must not lead to a sub-menu"
 msgstr "E330: Menysцkvдg fеr inte leda till en undermeny"
 
@@ -4199,9 +4270,6 @@ msgstr "ANCHOR_BUF_SIZE f
 msgid "I/O ERROR"
 msgstr "I/O-FEL"
 
-msgid "...(truncated)"
-msgstr "...(trunkerade)"
-
 msgid "Message"
 msgstr "Meddelande"
 
@@ -4642,6 +4710,16 @@ msgstr "E388: Kunde inte hitta definition"
 msgid "E389: Couldn't find pattern"
 msgstr "E389: Kunde inte hitta mцnster"
 
+#, c-format
+msgid ""
+"\n"
+"# Last %sSearch Pattern:\n"
+"~"
+msgstr ""
+"\n"
+"# Senaste %sSцkmцnster:\n"
+"~"
+
 msgid "E759: Format error in spell file"
 msgstr "E759: Formateringsfel i stavningsfil"
 
@@ -4716,6 +4794,20 @@ msgstr "Ogiltigt v
 msgid "FLAG after using flags in %s line %d: %s"
 msgstr "FLAG efter anvдndning av flags i %s rad %d: %s"
 
+#, c-format
+msgid ""
+"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definiera COMPOUNDFORBIDFLAG efter PFX-post kan ge fel resultat i %s rad %d"
+
+#, c-format
+msgid ""
+"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr "Definiera COMPOUNDPERMITFLAG efter PFX-post kan ge fel resultat i %s "
+"rad %d"
+
 #, c-format
 msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
 msgstr "Fel COMPOUNDWORDMAX-vдrde i %s rad %d: %s"
@@ -4745,8 +4837,8 @@ msgid ""
 "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
 "line %d: %s"
 msgstr ""
-"Affix ocksе anvдnd fцr BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST i "
-"%s rad %d: %s"
+"Affix ocksе anvдnd fцr BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST i %"
+"s rad %d: %s"
 
 #, c-format
 msgid "Expected Y or N in %s line %d: %s"
@@ -4756,10 +4848,6 @@ msgstr "F
 msgid "Broken condition in %s line %d: %s"
 msgstr "Trasigt villkor i %s rad %d: %s"
 
-#, c-format
-msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-msgstr "Affix-flaggor ignorerade nдr PFXPOSTPONE anvдnds i %s rad %d: %s"
-
 #, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "Fцrvдntade REP(SAL)-antal i %s rad %d"
@@ -4948,6 +5036,7 @@ msgstr "Tyv
 msgid "Sorry, only %ld suggestions"
 msgstr "Tyvдrr, bara %ld fцreslag"
 
+#. for when 'cmdheight' > 1
 #. avoid more prompt
 #, c-format
 msgid "Change \"%.*s\" to:"
@@ -5349,6 +5438,13 @@ msgstr "Inget att 
 msgid "number changes  time"
 msgstr "antal дndringar  tid"
 
+#, c-format
+msgid "%ld seconds ago"
+msgstr "%ld sekunder sedan"
+
+msgid "E790: undojoin is not allowed after undo"
+msgstr "E790: undojoin дr inte tillеtet efter undo"
+
 msgid "E439: undo list corrupt"
 msgstr "E439: еngra-lista trasig"
 
@@ -5363,6 +5459,13 @@ msgstr ""
 "\n"
 "MS-Windows 16/32-bitars GUI-version"
 
+msgid ""
+"\n"
+"MS-Windows 64 bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 64-bitars GUI-version"
+
 msgid ""
 "\n"
 "MS-Windows 32 bit GUI version"
@@ -5655,6 +5758,9 @@ msgstr "VARNING: Windows 95/98/ME uppt
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "skriv  :help windows95<Enter>  fцr info om det hдr"
 
+msgid "Already only one window"
+msgstr "Redan bara ett fцnster"
+
 msgid "E441: There is no preview window"
 msgstr "E441: Det finns inget fцrhandsvisningsfцnster"
 
@@ -5667,9 +5773,6 @@ msgstr "E443: Kan inte rotera n
 msgid "E444: Cannot close last window"
 msgstr "E444: Kan inte stдnga senaste fцnstret"
 
-msgid "Already only one window"
-msgstr "Redan bara ett fцnster"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: Andra fцnster innehеller дndringar"
 
@@ -5961,8 +6064,8 @@ msgid "E46: Cannot change read-only variable \"%s\""
 msgstr "E46: Kan inte дndra skrivskyddad variabel \"%s\""
 
 #, c-format
-msgid "E46: Cannot set variable in the sandbox: \"%s\""
-msgstr "E46: Kan inte sдtta variabel i sandlеdan: \"%s\""
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
+msgstr "E794: Kan inte sдtta variabel i sandlеdan: \"%s\""
 
 msgid "E47: Error while reading errorfile"
 msgstr "E47: Fel vid lдsning av felfil"
diff --git a/src/ui.c b/src/ui.c
index c2a224da1d9050a0e6fd8b843883cb82f87904fd..09dcb475be29781e80d85f66cf82acd02038fc41 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -2355,7 +2355,7 @@ clip_x11_set_selection(cbd)
 
 /*
  * Move the cursor to the specified row and column on the screen.
- * Change current window if neccesary.	Returns an integer with the
+ * Change current window if necessary.	Returns an integer with the
  * CURSOR_MOVED bit set if the cursor has moved or unset otherwise.
  *
  * The MOUSE_FOLD_CLOSE bit is set when clicked on the '-' in a fold column.
@@ -2422,7 +2422,7 @@ jump_to_mouse(flags, inclusive, which_button)
 	    && prev_col == mouse_col)
     {
 retnomove:
-	/* before moving the cursor for a left click wich is NOT in a status
+	/* before moving the cursor for a left click which is NOT in a status
 	 * line, stop Visual mode */
 	if (on_status_line)
 	    return IN_STATUS_LINE;