diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index d31815a291118249cdcaa4a21f5d36d7f455a289..bb82c174428d4ee58ba7ad7d8f99c0260acf5fc6 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 7.0aa.  Last change: 2004 Jul 05
+*if_mzsch.txt*  For Vim version 7.0aa.  Last change: 2005 Jan 23
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
@@ -17,6 +17,7 @@ The MzScheme interface is available only if Vim was compiled with the
 |+mzscheme| feature.
 
 Based on the work of Brent Fulgham.
+Dynamic loading added by Sergey Khorev
 
 For downloading MzScheme and other info:
 	http://www.plt-scheme.org/software/mzscheme/
diff --git a/runtime/syntax/ipfilter.vim b/runtime/syntax/ipfilter.vim
index e1e6fc412297003eac14fe1af08ec6eccc6665e0..8cdb113ee8982c443129f02cb3f385be90e8aa7e 100644
--- a/runtime/syntax/ipfilter.vim
+++ b/runtime/syntax/ipfilter.vim
@@ -1,7 +1,7 @@
 " ipfilter syntax file
 " Language: ipfilter configuration file
 " Maintainer: Hendrik Scholz <hendrik@scholz.net>
-" Last Change: 2003 May 11
+" Last Change: 2005 Jan 23
 "
 " http://raisdorf.net/files/misc/ipfilter.vim
 "
@@ -18,8 +18,8 @@ elseif exists("b:current_syntax")
 endif
 
 " comments
-syn match ipfComment /#/
-"syn match ipfComment /#.*/
+"syn match ipfComment /#/
+syn match ipfComment /#.*/
 
 syn keyword ipfQuick quick log dup-to
 syn keyword ipfAny all any
@@ -38,6 +38,6 @@ hi def link ipfActionPass	Type
 hi def link ipfActionMisc	Label
 "hi def link ipfQuick		Error
 hi def link ipfQuick		Special
-hi def link ipfAny		Todo
+hi def link ipfAny		Statement
 
 
diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak
index 962e22e6bd770609873c590aa0c5cf36e27c0b77..5319994eaddd1961a0c92c75de2f3e87f9299045 100644
--- a/src/Make_cyg.mak
+++ b/src/Make_cyg.mak
@@ -18,6 +18,16 @@
 # RUBY		define to path to Ruby dir to get Ruby support (not defined)
 #   RUBY_VER	define to version of Ruby being used (16)
 #   DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes)
+# MZSCHEME	define to path to MzScheme dir to get MZSCHEME support (not defined)
+#   MZSCHEME_VER      define to version of MzScheme being used (209_000)
+#   DYNAMIC_MZSCHEME  no or yes: use yes to load the MzScheme DLLs dynamically (yes)
+#   MZSCHEME_DLLS     path to MzScheme DLLs (libmzgc and libmzsch).
+#                     Is used for DYNAMIC_MZSCHEME=no only.
+#   		      c:/windows/system32 isn't a good idea, copy them to some
+#   		      dir and point MZSCHEME_DLLS to this dir.
+#   		      By default $(MZSCHEME) will be used. You can remove
+#   		      these DLLs from $(MZSCHEME_DLLS) after you
+#   		      built Vim (they are used for dll "static" linking only)
 # GETTEXT	no or yes: set to yes for dynamic gettext support (yes)
 # ICONV		no or yes: set to yes for dynamic iconv support (yes)
 # MBYTE		no or yes: set to yes to include multibyte support (yes)
@@ -189,6 +199,33 @@ EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
 endif
 endif
 
+##############################
+# DYNAMIC_MZSCHEME=yes works
+# DYNAMIC_MZSCHEME=no works too
+##############################
+ifdef MZSCHEME
+DEFINES += -DFEAT_MZSCHEME
+INCLUDES += -I$(MZSCHEME)/include
+EXTRA_OBJS += $(OUTDIR)/if_mzsch.o
+
+ifndef DYNAMIC_MZSCHEME
+DYNAMIC_MZSCHEME = yes
+endif
+
+ifndef MZSCHEME_VER
+MZSCHEME_VER = 209_000
+endif
+
+ifeq (yes, $(DYNAMIC_MZSCHEME))
+DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+else
+ifndef MZSCHEME_DLLS
+MZSCHEME_DLLS = $(MZSCHEME)
+endif
+EXTRA_LIBS += -L$(MZSCHEME_DLLS) -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
+endif
+endif
+
 ##############################
 # DYNAMIC_TCL=yes and no both work.
 ##############################
diff --git a/src/Make_ming.mak b/src/Make_ming.mak
index 2d8bbaf5c3598fa86d61d479398238aaa03ca043..a27ce520894009eb870c9b8ec0c3053315021fb6 100644
--- a/src/Make_ming.mak
+++ b/src/Make_ming.mak
@@ -107,16 +107,26 @@ endif
 # uncomment 'MZSCHEME' if you want a MzScheme-enabled version
 #MZSCHEME=d:/plt
 ifdef MZSCHEME
+ifndef DYNAMIC_MZSCHEME
+DYNAMIC_MZSCHEME=yes
+endif
+
 ifndef MZSCHEME_VER
 MZSCHEME_VER=205_000
 endif
-# the modern MinGW can dynamically link to dlls directly
-# point MZSCHEME_LIBDIR to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
+
+ifeq (no,$(DYNAMIC_MZSCHEME))
+MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
+# the modern MinGW can dynamically link to dlls directly.
+# point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
 # c:/windows/system32 isn't a good idea, use some other dir;
 # to build you can put them in temp dir)
-ifndef MZSCHEME_LIBDIR
-MZSCHEME_LIBDIR=-L$(MZSCHEME)
+ifndef MZSCHEME_DLLS
+MZSCHEME_DLLS=$(MZSCHEME)
+endif
+MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS)
 endif
+
 endif
 
 # Python support -- works with the ActiveState python 2.0 release (and others
@@ -270,6 +280,9 @@ endif
 
 ifdef MZSCHEME
 CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
+ifeq (yes, $(DYNAMIC_MZSCHEME))
+CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+endif
 endif
 
 ifdef RUBY
@@ -461,10 +474,6 @@ LIB += -lperl$(PERL_VER)
 endif
 endif
 
-ifdef MZSCHEME
-MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
-endif
-
 ifdef TCL
 LIB += -L$(TCL)/lib
 ifeq (yes, $(DYNAMIC_TCL))
diff --git a/src/configure b/src/configure
index be225eda67cdbd8c09ba768a2b19983dace3fd8c..6aa15be9c36b998fd977472c05bf3216d1beea57 100755
--- a/src/configure
+++ b/src/configure
@@ -2,3 +2,5 @@
 # run the automatically generated configure script
 CONFIG_STATUS=auto/config.status \
 	auto/configure "$@" --srcdir="${srcdir-.}" --cache-file=auto/config.cache
+# Stupid autoconf 2.5x causes this file to be left behind.
+if test -f configure.lineno; then rm -f configure.lineno; fi
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 47f7c64b981553e6ae89931892aed76cd133cc16..2b912d6821efa81dda81ebdf80960adb93282b46 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -1584,7 +1584,7 @@ getline_cookie(getline, cookie)
 /*
  * Avoid optimisation bug in VC++ version 6.0
  */
-# pragma optimize( "g", off )
+ #pragma optimize( "g", off )
 #endif
     static char_u *
 do_one_cmd(cmdlinep, sourcing,
@@ -2611,7 +2611,7 @@ doend:
     return ea.nextcmd;
 }
 #if (_MSC_VER == 1200)
-# pragma optimize( "", on )
+ #pragma optimize( "", on )
 #endif
 
 /*
@@ -7749,7 +7749,7 @@ ex_mkrc(eap)
     /* When using 'viewdir' may have to create the directory. */
     if (using_vdir && !mch_isdir(p_vdir))
 	if (vim_mkdir(p_vdir, 0755) != 0)
-	    EMSG2(_("E738: Cannot create directory: %s"), p_vdir);
+	    EMSG2(_("E739: Cannot create directory: %s"), p_vdir);
 #endif
 
     fd = open_exfile(fname, eap->forceit, WRITEBIN);
diff --git a/src/globals.h b/src/globals.h
index 8cac0f761d93294903d6134048b8d944ac0bac22..7580dd092877074b4d515fe5861db149c61197fd 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -136,6 +136,7 @@ EXTERN int	msg_scrolled_ign INIT(= FALSE);
 
 EXTERN char_u	*keep_msg INIT(= NULL);	    /* msg to be shown after redraw */
 EXTERN int	keep_msg_attr INIT(= 0);    /* highlight attr for keep_msg */
+EXTERN int	keep_msg_more INIT(= FALSE); /* keep_msg was set by msgmore() */
 EXTERN int	need_fileinfo INIT(= FALSE);/* do fileinfo() after redraw */
 EXTERN int	msg_scroll INIT(= FALSE);   /* msg_start() will scroll */
 EXTERN int	msg_didout INIT(= FALSE);   /* msg_outstr() was used in line */
@@ -1278,7 +1279,7 @@ EXTERN char_u e_libcall[]	INIT(=N_("E364: Library call failed for \"%s()\""));
 #endif
 #if defined(DYNAMIC_PERL) || defined(DYNAMIC_PYTHON) || defined(DYNAMIC_RUBY) \
 	|| defined(DYNAMIC_TCL) || defined(DYNAMIC_ICONV) \
-	|| defined(DYNAMIC_GETTEXT)
+	|| defined(DYNAMIC_GETTEXT) || defined(DYNAMIC_MZSCHEME)
 EXTERN char_u e_loadlib[]	INIT(=N_("E370: Could not load library %s"));
 EXTERN char_u e_loadfunc[]	INIT(=N_("E448: Could not load library function %s"));
 #endif
diff --git a/src/macros.h b/src/macros.h
index 6d6484c56fa4b3233e7d05d64412210907974ecd..233df0f25c6bf594fc7b3da07dac7a50f0b9c1f2 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -249,15 +249,6 @@
 # define CURSOR_BAR_RIGHT (curwin->w_p_rl && (!(State & CMDLINE) || cmdmsg_rl))
 #endif
 
-#ifndef FEAT_LINEBREAK
-/* Without the 'numberwidth' option line numbers are always 7 chars. */
-# define number_width(x) 7
-#endif
-
-#ifndef FEAT_MBYTE
-# define after_pathsep(b, p) vim_ispathsep(*((p) - 1))
-#endif
-
 /*
  * mb_ptr_adv(): advance a pointer to the next character, taking care of
  * multi-byte characters if needed.
diff --git a/src/proto/charset.pro b/src/proto/charset.pro
index 88e9754b3332eebace51b8a1dfa040429cbcea17..afc8562cec064fb7170f278db469a647fe8f8795 100644
--- a/src/proto/charset.pro
+++ b/src/proto/charset.pro
@@ -3,7 +3,7 @@ int init_chartab __ARGS((void));
 int buf_init_chartab __ARGS((buf_T *buf, int global));
 void trans_characters __ARGS((char_u *buf, int bufsize));
 char_u *transstr __ARGS((char_u *s));
-char_u *str_foldcase __ARGS((char_u *str, int len));
+char_u *str_foldcase __ARGS((char_u *str, int orglen, char_u *buf, int buflen));
 char_u *transchar __ARGS((int c));
 char_u *transchar_byte __ARGS((int c));
 void transchar_nonprint __ARGS((char_u *buf, int c));