updated for version 7.1b
diff --git a/src/GvimExt/gvimext.cpp b/src/GvimExt/gvimext.cpp
index dbd769a..a18eb0b 100644
--- a/src/GvimExt/gvimext.cpp
+++ b/src/GvimExt/gvimext.cpp
@@ -575,7 +575,7 @@
 
     // 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 0d3d196..90940f5 100644
--- a/src/gui_at_sb.h
+++ b/src/gui_at_sb.h
@@ -110,7 +110,7 @@
     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 04ee0a0..5237339 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 @@
 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 @@
     /* 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 @@
 	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 @@
 	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 @@
 # 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 @@
  * 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 @@
 	/*
 	 * 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 @@
 {
     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 01f4e0f..3f2a256 100644
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -643,7 +643,7 @@
 /*
  * 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 3426dce..438cb99 100644
--- a/src/main.c
+++ b/src/main.c
@@ -745,7 +745,7 @@
      * 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 @@
 	 * 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 @@
 }
 
 /*
- * 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 0c4d01c..f1e85fc 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -1097,7 +1097,7 @@
 	{
 	    /*
 	     * 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 @@
 }
 
 /*
- * 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 e6bf7ee..6e44881 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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()"
@@ -595,6 +620,10 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 "\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 @@
 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 @@
 ",\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 @@
 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 @@
 msgid "I/O ERROR"
 msgstr "I/O-FEL"
 
-msgid "...(truncated)"
-msgstr "...(trunkerade)"
-
 msgid "Message"
 msgstr "Meddelande"
 
@@ -4642,6 +4710,16 @@
 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"
 
@@ -4717,6 +4795,20 @@
 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 @@
 "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"
@@ -4757,10 +4849,6 @@
 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 @@
 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 @@
 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"
 
@@ -5365,6 +5461,13 @@
 
 msgid ""
 "\n"
+"MS-Windows 64 bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 64-bitars GUI-version"
+
+msgid ""
+"\n"
 "MS-Windows 32 bit GUI version"
 msgstr ""
 "\n"
@@ -5655,6 +5758,9 @@
 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 @@
 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 @@
 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 c2a224d..09dcb47 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -2355,7 +2355,7 @@
 
 /*
  * 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 @@
 	    && 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;