diff --git a/ChangeLog b/ChangeLog
index 8b7afd1..1dea1d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
 
                 ChangeLog file for zlib
 
-Changes in 1.2.4 (11 Mar 2010)
+Changes in 1.2.4 (13 Mar 2010)
 - Fix VER3 extraction in configure for no fourth subversion
 - Update zlib.3, add docs to Makefile.in to make .pdf out of it
 - Add zlib.3.pdf to distribution
@@ -25,6 +25,11 @@
 - Update win32/Makefile.msc, add ZLIB_VER_SUBREVISION [Rowe]
 - Fix memory leaks in gzclose_r() and gzclose_w(), file leak in gz_open()
 - Add contrib/gcc_gvmat64 for longest_match and inflate_fast [Vollant]
+- Remove *64 functions from win32/zlib.def (they're not 64-bit yet)
+- Fix bug in void-returning vsprintf() case in gzwrite.c
+- Fix name change from inflate.h in contrib/inflate86/inffas86.c
+- Check if temporary file exists before removing in make_vms.com [Zinser]
+- Fix make install and uninstall for --static option
 
 Changes in 1.2.3.9 (21 Feb 2010)
 - Expunge gzio.c
diff --git a/Makefile b/Makefile
index 3839b42..6bba86c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 all:
-	-@echo "Use ./configure first.  Thank you."
+	-@echo "Please use ./configure first.  Thank you."
 
 distclean:
 	make -f Makefile.in distclean
diff --git a/Makefile.in b/Makefile.in
index efaec6f..5a2300a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -164,9 +164,10 @@
 	-@if [ ! -d $(DESTDIR)$(man3dir)      ]; then mkdir -p $(DESTDIR)$(man3dir); fi
 	-@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
 	cp $(LIBS) $(DESTDIR)$(libdir)
-	cd $(DESTDIR)$(libdir); chmod 755 $(SHAREDLIB) ; chmod u=rw,go=r $(STATICLIB)
+	cd $(DESTDIR)$(libdir); chmod u=rw,go=r $(STATICLIB)
 	-@(cd $(DESTDIR)$(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
-	cd $(DESTDIR)$(libdir); if test -f $(SHAREDLIBV); then \
+	-@cd $(DESTDIR)$(libdir); if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
+	  chmod 755 $(SHAREDLIBV); \
 	  rm -f $(SHAREDLIB) $(SHAREDLIBM); \
 	  ln -s $(SHAREDLIBV) $(SHAREDLIB); \
 	  ln -s $(SHAREDLIBV) $(SHAREDLIBM); \
@@ -187,7 +188,7 @@
 uninstall:
 	cd $(DESTDIR)$(includedir); rm -f zlib.h zconf.h
 	cd $(DESTDIR)$(libdir); rm -f libz.a; \
-	if test -f $(SHAREDLIBV); then \
+	if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
 	  rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
 	fi
 	cd $(DESTDIR)$(man3dir); rm -f zlib.3
@@ -218,7 +219,7 @@
 distclean: clean zconf docs
 	rm -f Makefile zlib.pc
 	-@rm -f .DS_Store
-	-@printf 'all:\n\t-@echo "Use ./configure first.  Thank you."\n' > Makefile
+	-@printf 'all:\n\t-@echo "Please use ./configure first.  Thank you."\n' > Makefile
 	-@printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile
 	-@touch -r Makefile.in Makefile
 
diff --git a/configure b/configure
index d3ee355..672fd37 100755
--- a/configure
+++ b/configure
@@ -215,6 +215,9 @@
   LDSHARED="$CC"
   ALL="static"
   TEST="all teststatic"
+  SHAREDLIB=""
+  SHAREDLIBV=""
+  SHAREDLIBM=""
   echo Building static library $STATICLIB version $VER with $CC.
 else
   ALL="static shared"
diff --git a/contrib/infback9/inftree9.c b/contrib/infback9/inftree9.c
index 8d15fdc..4e04db9 100644
--- a/contrib/infback9/inftree9.c
+++ b/contrib/infback9/inftree9.c
@@ -64,7 +64,7 @@
     static const unsigned short lext[31] = { /* Length codes 257..285 extra */
         128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129,
         130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132,
-        133, 133, 133, 133, 144, 66, 199};
+        133, 133, 133, 133, 144, 198, 71};
     static const unsigned short dbase[32] = { /* Distance codes 0..31 base */
         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49,
         65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073,
diff --git a/contrib/inflate86/inffas86.c b/contrib/inflate86/inffas86.c
index 6da7635..7292f67 100644
--- a/contrib/inflate86/inffas86.c
+++ b/contrib/inflate86/inffas86.c
@@ -113,7 +113,7 @@
     ar.beg = ar.out - (start - strm->avail_out);
     ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT);
     ar.wsize = state->wsize;
-    ar.write = state->write;
+    ar.write = state->wnext;
     ar.window = state->window;
     ar.hold = state->hold;
     ar.bits = state->bits;
diff --git a/contrib/masmx86/match686.obj b/contrib/masmx86/match686.obj
deleted file mode 100644
index 2e4631f..0000000
--- a/contrib/masmx86/match686.obj
+++ /dev/null
Binary files differ
diff --git a/gzwrite.c b/gzwrite.c
index 427840d..e8defc6 100644
--- a/gzwrite.c
+++ b/gzwrite.c
@@ -318,7 +318,7 @@
 #  ifdef HAS_vsprintf_void
     (void)vsprintf(state->in, format, va);
     va_end(va);
-    for (len = 0; len < state->in; len++)
+    for (len = 0; len < size; len++)
         if (state->in[len] == 0) break;
 #  else
     len = vsprintf(state->in, format, va);
diff --git a/inftrees.c b/inftrees.c
index 3ee7d06..5bfc691 100644
--- a/inftrees.c
+++ b/inftrees.c
@@ -62,7 +62,7 @@
         35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
     static const unsigned short lext[31] = { /* Length codes 257..285 extra */
         16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
-        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 66, 199};
+        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 198, 71};
     static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
         257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
diff --git a/make_vms.com b/make_vms.com
index deee87f..6576490 100644
--- a/make_vms.com
+++ b/make_vms.com
@@ -134,7 +134,7 @@
 $ write aconf "#endif"
 $ close aconf_in
 $ close aconf
-$ delete 'th';*
+$ if f$search("''th'") .nes. "" then delete 'th';*
 $! Build the thing plain or with mms
 $!
 $ write sys$output "Compiling Zlib sources ..."
diff --git a/win32/zlib.def b/win32/zlib.def
index d247b79..03df8bf 100644
--- a/win32/zlib.def
+++ b/win32/zlib.def
@@ -68,12 +68,6 @@
     inflateInit_
     inflateInit2_
     inflateBackInit_
-    gzopen64
-    gzseek64
-    gztell64
-    gzoffset64
-    adler32_combine64
-    crc32_combine64
     zError
     inflateSyncPoint
     get_crc_table
diff --git a/zlib.3 b/zlib.3
index 57f0307..c01df46 100644
--- a/zlib.3
+++ b/zlib.3
@@ -1,4 +1,4 @@
-.TH ZLIB 3 "11 March 2010"
+.TH ZLIB 3 "13 March 2010"
 .SH NAME
 zlib \- compression/decompression library
 .SH SYNOPSIS
diff --git a/zlib.3.pdf b/zlib.3.pdf
index 3442d5b..1412154 100644
--- a/zlib.3.pdf
+++ b/zlib.3.pdf
Binary files differ
diff --git a/zlib.h b/zlib.h
index dfc0bba..1ad1ac3 100644
--- a/zlib.h
+++ b/zlib.h
@@ -1,5 +1,5 @@
 /* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.2.3.9, Mar 11th, 2010
+  version 1.2.4, Mar 13th, 2010
 
   Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
 
