diff --git a/ANNOUNCE b/ANNOUNCE
index 2593c56..eefd395 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.7.0beta38 - October 5, 2014
+Libpng 1.7.0beta38 - October 17, 2014
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -597,12 +597,14 @@
 
 Version 1.7.0beta36 [September 27, 2014]
   Updated scripts/makefiles from libpng-1.6.13beta04.
-  Minor updates to pngrutil.c and the manual from libpng-1.6.14beta04.
+  Minor updates to the manual from libpng-1.6.14beta04.
+  Fixed incorrect handling of the iTXt compression flag in pngrutil.c
+    (bug report by Shunsaku Hirata).  Bug was introduced in libpng-1.6.0.
 
 Version 1.7.0beta37 [September 28, 2014]
   Merged scripts/*, pngvalid.c and pngfix.c with libpng-1.6.14beta04.
 
-Version 1.7.0beta38 [October 5, 2014]
+Version 1.7.0beta38 [October 17, 2014]
   Added "option READ_iCCP enables READ_COMPRESSED_TEXT" to pnglibconf.dfa
   Removed unused "text_len" parameter from private function png_write_zTXt().
   Conditionally compile some code in png_deflate_claim(), when
diff --git a/CHANGES b/CHANGES
index 9b9af55..c829a9e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4886,12 +4886,14 @@
 
 Version 1.7.0beta36 [September 27, 2014]
   Updated scripts/makefiles from libpng-1.6.13beta04.
-  Minor updates to pngrutil.c and the manual from libpng-1.6.14beta04.
+  Minor updates to the manual from libpng-1.6.14beta04.
+  Fixed incorrect handling of the iTXt compression flag in pngrutil.c
+    (bug report by Shunsaku Hirata).  Bug was introduced in libpng-1.6.0.
 
 Version 1.7.0beta37 [September 28, 2014]
   Merged scripts/*, pngvalid.c and pngfix.c with libpng-1.6.14beta04.
 
-Version 1.7.0beta38 [October 5, 2014]
+Version 1.7.0beta38 [October 17, 2014]
   Added "option READ_iCCP enables READ_COMPRESSED_TEXT" to pnglibconf.dfa
   Removed unused "text_len" parameter from private function png_write_zTXt().
   Conditionally compile some code in png_deflate_claim(), when
diff --git a/LICENSE b/LICENSE
index b59e6be..52b0d6b 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.7.0beta38, September 28, 2014, are
+libpng versions 1.2.6, August 15, 2004, through 1.7.0beta38, October 17, 2014, are
 Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -108,4 +108,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-September 28, 2014
+October 17, 2014
diff --git a/libpng-manual.txt b/libpng-manual.txt
index e021cbe..f280655 100644
--- a/libpng-manual.txt
+++ b/libpng-manual.txt
@@ -1,6 +1,6 @@
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.7.0beta38 - September 28, 2014
+ libpng version 1.7.0beta38 - October 17, 2014
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.7.0beta38 - September 28, 2014
+ libpng versions 0.97, January 1998, through 1.7.0beta38 - October 17, 2014
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
 
@@ -5309,7 +5309,7 @@
 
 XVII. Y2K Compliance in libpng
 
-September 28, 2014
+October 17, 2014
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
diff --git a/libpng.3 b/libpng.3
index b24c1f0..59e5149 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "September 28, 2014"
+.TH LIBPNG 3 "October 17, 2014"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.7.0beta38
 .SH SYNOPSIS
@@ -494,7 +494,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.7.0beta38 - September 28, 2014
+ libpng version 1.7.0beta38 - October 17, 2014
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
@@ -505,7 +505,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.7.0beta38 - September 28, 2014
+ libpng versions 0.97, January 1998, through 1.7.0beta38 - October 17, 2014
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
 
@@ -5803,7 +5803,7 @@
 
 .SH XVII. Y2K Compliance in libpng
 
-September 28, 2014
+October 17, 2014
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
@@ -6073,7 +6073,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.7.0beta38 - September 28, 2014:
+Libpng version 1.7.0beta38 - October 17, 2014:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -6096,7 +6096,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.7.0beta38, September 28, 2014, are
+libpng versions 1.2.6, August 15, 2004, through 1.7.0beta38, October 17, 2014, are
 Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -6195,7 +6195,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-September 28, 2014
+October 17, 2014
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index 84f0df0..db562f6 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "September 28, 2014"
+.TH LIBPNGPF 3 "October 17, 2014"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.7.0beta38
 (private functions)
diff --git a/png.5 b/png.5
index 2fa7b60..d432d5c 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "September 28, 2014"
+.TH PNG 5 "October 17, 2014"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 405c6b6..04e04c0 100644
--- a/png.c
+++ b/png.c
@@ -696,13 +696,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.7.0beta38 - October 4, 2014" PNG_STRING_NEWLINE \
+     "libpng version 1.7.0beta38 - October 17, 2014" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2014 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
      "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
      "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
      PNG_STRING_NEWLINE;
 #  else
-      return "libpng version 1.7.0beta38 - October 4, 2014\
+      return "libpng version 1.7.0beta38 - October 17, 2014\
       Copyright (c) 1998-2014 Glenn Randers-Pehrson\
       Copyright (c) 1996-1997 Andreas Dilger\
       Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
diff --git a/png.h b/png.h
index 521eace..e2afc12 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.7.0beta38 - September 28, 2014
+ * libpng version 1.7.0beta38 - October 17, 2014
  * Copyright (c) 1998-2013 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -11,7 +11,7 @@
  * Authors and maintainers:
  *   libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
  *   libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- *   libpng versions 0.97, January 1998, through 1.7.0beta38 - September 28, 2014: Glenn
+ *   libpng versions 0.97, January 1998, through 1.7.0beta38 - October 17, 2014: Glenn
  *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -200,7 +200,7 @@
  *
  * This code is released under the libpng license.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.7.0beta38, September 28, 2014, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.7.0beta38, October 17, 2014, are
  * Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.2.5
  * with the following individual added to the list of Contributing Authors:
@@ -312,7 +312,7 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    September 28, 2014
+ *    October 17, 2014
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
@@ -382,7 +382,7 @@
 /* Version information for png.h - this should match the version in png.c */
 #define PNG_LIBPNG_VER_STRING "1.7.0beta38"
 #define PNG_HEADER_VERSION_STRING \
-     " libpng version 1.7.0beta38 - September 28, 2014\n"
+     " libpng version 1.7.0beta38 - October 17, 2014\n"
 
 #define PNG_LIBPNG_VER_SONUM   17
 #define PNG_LIBPNG_VER_DLLNUM  17
diff --git a/pngconf.h b/pngconf.h
index 35f2871..1966a35 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.7.0beta38 - September 28, 2014
+ * libpng version 1.7.0beta38 - October 17, 2014
  *
  * Copyright (c) 1998-2013 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpread.c b/pngpread.c
index fca1437..c604533 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -29,7 +29,7 @@
 #define PNG_PUSH_SAVE_BUFFER_IF_FULL \
 if (png_ptr->push_length + 4 > png_ptr->buffer_size) \
    { png_push_save_buffer(png_ptr); return; }
-#define PNG_PUSH_SAVE_BUFFER_IF_LT_N(N) \
+#define PNG_PUSH_SAVE_BUFFER_IF_LT(N) \
 if (png_ptr->buffer_size < N) \
    { png_push_save_buffer(png_ptr); return; }
 
@@ -207,7 +207,7 @@
       png_byte chunk_length[4];
       png_byte chunk_tag[4];
 
-      PNG_PUSH_SAVE_BUFFER_IF_LT_N(8)
+      PNG_PUSH_SAVE_BUFFER_IF_LT(8)
       png_push_fill_buffer(png_ptr, chunk_length, 4);
       png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
       png_reset_crc(png_ptr);
@@ -496,7 +496,7 @@
    }
    if (!png_ptr->skip_length)
    {
-      PNG_PUSH_SAVE_BUFFER_IF_LT_N(4)
+      PNG_PUSH_SAVE_BUFFER_IF_LT(4)
       png_crc_finish(png_ptr, 0);
       png_ptr->process_mode = PNG_READ_CHUNK_MODE;
    }
@@ -621,7 +621,7 @@
       png_byte chunk_tag[4];
 
       /* TODO: this code can be commoned up with the same code in push_read */
-      PNG_PUSH_SAVE_BUFFER_IF_LT_N(8)
+      PNG_PUSH_SAVE_BUFFER_IF_LT(8)
       png_push_fill_buffer(png_ptr, chunk_length, 4);
       png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
       png_reset_crc(png_ptr);
@@ -696,7 +696,7 @@
    }
    if (!png_ptr->idat_size)
    {
-      PNG_PUSH_SAVE_BUFFER_IF_LT_N(4)
+      PNG_PUSH_SAVE_BUFFER_IF_LT(4)
       png_crc_finish(png_ptr, 0);
       png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
       png_ptr->mode |= PNG_AFTER_IDAT;
diff --git a/pngset.c b/pngset.c
index f57618a..9849b4c 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1622,7 +1622,7 @@
     * It is possible for an indexed (color-type==3) PNG file to contain
     * pixels with invalid (out-of-range) indexes if the PLTE chunk has
     * fewer entries than the image's bit-depth would allow. We recover
-    * from this gracefully by filling any incomplete palette with zeroes
+    * from this gracefully by filling any incomplete palette with zeros
     * (opaque black).  By default, when this occurs libpng will issue
     * a benign error.  This API can be used to override that behavior.
     */
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index 753bc04..ab079db 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.7.0beta38 - September 28, 2014
+libpng version 1.7.0beta38 - October 17, 2014
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index df58280..84b7a9c 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
 <!--
  * zlib.props - location of zlib source
  *
- * libpng version 1.7.0beta38 - September 28, 2014
+ * libpng version 1.7.0beta38 - October 17, 2014
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index 8690f84..7c5759a 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.7.0beta38 - September 28, 2014
+Makefiles for  libpng version 1.7.0beta38 - October 17, 2014
 
 pnglibconf.h.prebuilt       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
diff --git a/scripts/options.awk b/scripts/options.awk
index dd78485..81b82ff 100755
--- a/scripts/options.awk
+++ b/scripts/options.awk
@@ -1,7 +1,7 @@
 #!/bin/awk -f
 # scripts/options.awk - library build configuration control
 #
-# last changed in libpng version 1.6.14 - June 5, 2014
+# last changed in libpng version 1.6.11 - June 5, 2014
 #
 # Copyright (c) 1998-2014 Glenn Randers-Pehrson
 #
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 023c713..b4632e4 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -2,7 +2,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng version 1.7.0beta38 - September 28, 2014 */
+/* Libpng version 1.7.0beta38 - October 17, 2014 */
 
 /* Copyright (c) 1998-2014 Glenn Randers-Pehrson */
 
