updated for version 7.0f04
diff --git a/src/Makefile b/src/Makefile
index 585349b..8572551 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1719,6 +1719,9 @@
 	-if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \
 		cd $(PODIR); $(MAKE) -f Makefile check VIM=../$(VIMTARGET); \
 	fi
+	-if test $(VIMTARGET) != vim -a ! -e vim; then \
+		ln -s $(VIMTARGET) vim; \
+	fi
 	cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG)
 
 testclean:
@@ -2148,7 +2151,7 @@
 # Clean up all the files that have been produced, except configure's.
 # We support common typing mistakes for Juergen! :-)
 clean celan: testclean
-	-rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) xxd/*.o
+	-rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
 	-rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
 	-rm -f conftest* *~ auto/link.sed
 	-rm -rf $(APPDIR)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index ce48b67..376cbcc 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -2841,6 +2841,38 @@
     prev_ccline = *ccp;
 }
 
+#if defined(FEAT_EVAL) || defined(PROTO)
+/*
+ * Save the command line into allocated memory.  Returns a pointer to be
+ * passed to restore_cmdline_alloc() later.
+ * Returns NULL when failed.
+ */
+    char_u *
+save_cmdline_alloc()
+{
+    struct cmdline_info *p;
+
+    p = (struct cmdline_info *)alloc((unsigned)sizeof(struct cmdline_info));
+    if (p != NULL)
+	save_cmdline(p);
+    return (char_u *)p;
+}
+
+/*
+ * Restore the command line from the return value of save_cmdline_alloc().
+ */
+    void
+restore_cmdline_alloc(p)
+    char_u  *p;
+{
+    if (p != NULL)
+    {
+	restore_cmdline((struct cmdline_info *)p);
+	vim_free(p);
+    }
+}
+#endif
+
 /*
  * paste a yank register into the command line.
  * used by CTRL-R command in command-line mode
diff --git a/src/po/pl.cp1250.po b/src/po/pl.cp1250.po
index 0631ac4..e10e745 100644
--- a/src/po/pl.cp1250.po
+++ b/src/po/pl.cp1250.po
@@ -910,7 +910,7 @@
 
 #, c-format
 msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# WartoϾ 'encoding' w czasie zapsu tego pliku\n"
+msgstr "# WartoϾ 'encoding' w czasie zapisu tego pliku\n"
 
 msgid "Illegal starting char"
 msgstr "Niedopuszczalny pocz¹tkowy znak"
@@ -1483,7 +1483,7 @@
 
 #. Re-opening the original file failed!
 msgid "E202: Conversion made file unreadable!"
-msgstr "E202: Plik stworzony poprzez przemianê jest nieodczytywalny!"
+msgstr "E202: Nie mo¿na otworzyæ pliku utworzonego przez przemianê!"
 
 msgid "[fifo/socket]"
 msgstr "[fifo/socket]"
@@ -1648,13 +1648,13 @@
 msgstr "[mac]"
 
 msgid "[mac format]"
-msgstr "[format mac-a]"
+msgstr "[format maca]"
 
 msgid "[unix]"
 msgstr "[unix]"
 
 msgid "[unix format]"
-msgstr "[format unix-a]"
+msgstr "[format unixa]"
 
 msgid "1 line, "
 msgstr "1 wiersz, "
@@ -1928,7 +1928,7 @@
 msgstr "Input _Methods"
 
 msgid "VIM - Search and Replace..."
-msgstr "VIM - Szukaj i Zamieniaj..."
+msgstr "VIM - Szukaj i Zamieñ..."
 
 msgid "VIM - Search..."
 msgstr "VIM - Szukaj..."
@@ -1967,7 +1967,7 @@
 msgstr "Zamieñ wszystkie"
 
 msgid "Vim: Received \"die\" request from session manager\n"
-msgstr "Vim: otrzymano ¿¹danie \"die\" od manad¿era sesji\n"
+msgstr "Vim: otrzymano ¿¹danie \"die\" od mened¿era sesji\n"
 
 msgid "Close"
 msgstr "Zamknij"
@@ -2463,7 +2463,7 @@
 msgstr "writelines() wymaga listy ci¹gów"
 
 msgid "E264: Python: Error initialising I/O objects"
-msgstr "E264: Python: B³¹d w inicjalizacji obiektów I/O"
+msgstr "E264: Python: B³¹d w uruchomieniu obiektów I/O"
 
 msgid "attempt to refer to deleted buffer"
 msgstr "próba odniesienia do skasowanego bufora"
@@ -2542,7 +2542,7 @@
 msgstr "Poka¿ bazê klasy"
 
 msgid "Show overridden member function"
-msgstr "Poka¿ przepisan¹ funkcjê cz³onkow¹"
+msgstr "Poka¿ przepisan¹ funkcjê cz³onow¹"
 
 msgid "Retrieve from file"
 msgstr "Pobieraj z pliku"
@@ -2587,7 +2587,7 @@
 msgstr "Poka¿ dokumentacjê dla"
 
 msgid "Generate docu for"
-msgstr "Wygeneruj dokumentacjê dla"
+msgstr "Utwórz dokumentacjê dla"
 
 msgid ""
 "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
diff --git a/src/screen.c b/src/screen.c
index c293de1..8c52aad 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -463,6 +463,12 @@
 		))
 	curwin->w_redr_type = type;
 
+#ifdef FEAT_WINDOWS
+    /* Redraw the tab pages line if needed. */
+    if (redraw_tabline || type >= NOT_VALID)
+	draw_tabline();
+#endif
+
 #ifdef FEAT_SYN_HL
     /*
      * Correct stored syntax highlighting info for changes in each displayed
@@ -490,12 +496,6 @@
     }
 #endif
 
-#ifdef FEAT_WINDOWS
-    /* Redraw the tab pages line if needed. */
-    if (redraw_tabline || type >= NOT_VALID)
-	draw_tabline();
-#endif
-
     /*
      * Go from top to bottom through the windows, redrawing the ones that need
      * it.
diff --git a/src/testdir/test49.vim b/src/testdir/test49.vim
index 19ef949..3b0982a 100644
--- a/src/testdir/test49.vim
+++ b/src/testdir/test49.vim
@@ -1,6 +1,6 @@
 " Vim script language tests
 " Author:	Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-" Last Change:	2006 Feb 28
+" Last Change:	2006 Apr 28
 
 "-------------------------------------------------------------------------------
 " Test environment							    {{{1
diff --git a/src/version.h b/src/version.h
index c91cb0b..af0ef0e 100644
--- a/src/version.h
+++ b/src/version.h
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70f"
 #define VIM_VERSION_SHORT	"7.0f"
-#define VIM_VERSION_MEDIUM	"7.0f03 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0f03 BETA (2006 Apr 27)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0f03 BETA (2006 Apr 27, compiled "
+#define VIM_VERSION_MEDIUM	"7.0f04 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0f04 BETA (2006 Apr 28)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0f04 BETA (2006 Apr 28, compiled "