diff --git a/ANNOUNCE b/ANNOUNCE
index 752e506..7ce1e34 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.7.0beta66 - September 27, 2015
+Libpng 1.7.0beta66 - October 2, 2015
 
 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.
@@ -871,7 +871,7 @@
     (but not yet by the writer) (John Bowler).
   Implemented shared transform handling that is used throughout (John Bowler).
 
-Version 1.7.0beta66 [September 27, 2015]
+Version 1.7.0beta66 [October 2, 2015]
   Enabled the low-bit-depth gray tests that were disabled in prior versions
     of libpng because of problems that should have been fixed by the recent
     changes to libpng17. Enabling the tests revealed bugs in those changes
diff --git a/CHANGES b/CHANGES
index a00b70c..18e43d4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5170,7 +5170,7 @@
     (but not yet by the writer) (John Bowler).
   Implemented shared transform handling that is used throughout (John Bowler).
 
-Version 1.7.0beta66 [September 27, 2015]
+Version 1.7.0beta66 [October 2, 2015]
   Enabled the low-bit-depth gray tests that were disabled in prior versions
     of libpng because of problems that should have been fixed by the recent
     changes to libpng17. Enabling the tests revealed bugs in those changes
diff --git a/LICENSE b/LICENSE
index e4dcf9b..30c5ed9 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.0.7, July 1, 2000, through 1.7.0beta66, September 18, 2015, are
+libpng versions 1.0.7, July 1, 2000, through 1.7.0beta66, October 2, 2015, are
 Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors:
@@ -104,4 +104,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-September 18, 2015
+October 2, 2015
diff --git a/README b/README
index 6ae8c7a..74093bc 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.7.0beta66 - September 18, 2015 (shared library 17.0)
+README for libpng version 1.7.0beta66 - October 2, 2015 (shared library 17.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
diff --git a/contrib/gregbook/readpng2.c b/contrib/gregbook/readpng2.c
index 2e4c536..a9e7ba5 100644
--- a/contrib/gregbook/readpng2.c
+++ b/contrib/gregbook/readpng2.c
@@ -4,7 +4,7 @@
 
   ---------------------------------------------------------------------------
 
-      Copyright (c) 1998-2007 Greg Roelofs.  All rights reserved.
+      Copyright (c) 1998-2015 Greg Roelofs.  All rights reserved.
 
       This software is provided "as is," without warranty of any kind,
       express or implied.  In no event shall the author or contributors
@@ -51,6 +51,11 @@
       along with this program; if not, write to the Free Software Foundation,
       Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+  ---------------------------------------------------------------------------
+
+   Changelog:
+     %RDATE% - Check return value of png_get_bKGD() (Glenn R-P)
+
   ---------------------------------------------------------------------------*/
 
 
@@ -104,7 +109,7 @@
 
     /* could also replace libpng warning-handler (final NULL), but no need: */
 
-    png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, mainprog_ptr,
+    png_ptr = png_create_read_struct(png_get_libpng_ver(NULL), mainprog_ptr,
       readpng2_error_handler, readpng2_warning_handler);
     if (!png_ptr)
         return 4;   /* out of memory */
@@ -261,36 +266,38 @@
     /* since we know we've read all of the PNG file's "header" (i.e., up
      * to IDAT), we can check for a background color here */
 
-    if (mainprog_ptr->need_bgcolor &&
-        png_get_valid(png_ptr, info_ptr, PNG_INFO_bKGD))
+    if (mainprog_ptr->need_bgcolor)
     {
         png_color_16p pBackground;
 
         /* it is not obvious from the libpng documentation, but this function
          * takes a pointer to a pointer, and it always returns valid red,
          * green and blue values, regardless of color_type: */
-        png_get_bKGD(png_ptr, info_ptr, &pBackground);
+        if (png_get_bKGD(png_ptr, info_ptr, &pBackground))
+        {
 
-        /* however, it always returns the raw bKGD data, regardless of any
-         * bit-depth transformations, so check depth and adjust if necessary */
-        if (bit_depth == 16) {
-            mainprog_ptr->bg_red   = pBackground->red   >> 8;
-            mainprog_ptr->bg_green = pBackground->green >> 8;
-            mainprog_ptr->bg_blue  = pBackground->blue  >> 8;
-        } else if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
-            if (bit_depth == 1)
-                mainprog_ptr->bg_red = mainprog_ptr->bg_green =
-                  mainprog_ptr->bg_blue = pBackground->gray? 255 : 0;
-            else if (bit_depth == 2)
-                mainprog_ptr->bg_red = mainprog_ptr->bg_green =
-                  mainprog_ptr->bg_blue = (255/3) * pBackground->gray;
-            else /* bit_depth == 4 */
-                mainprog_ptr->bg_red = mainprog_ptr->bg_green =
-                  mainprog_ptr->bg_blue = (255/15) * pBackground->gray;
-        } else {
-            mainprog_ptr->bg_red   = (uch)pBackground->red;
-            mainprog_ptr->bg_green = (uch)pBackground->green;
-            mainprog_ptr->bg_blue  = (uch)pBackground->blue;
+           /* however, it always returns the raw bKGD data, regardless of any
+            * bit-depth transformations, so check depth and adjust if necessary
+            */
+           if (bit_depth == 16) {
+               mainprog_ptr->bg_red   = pBackground->red   >> 8;
+               mainprog_ptr->bg_green = pBackground->green >> 8;
+               mainprog_ptr->bg_blue  = pBackground->blue  >> 8;
+           } else if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+               if (bit_depth == 1)
+                   mainprog_ptr->bg_red = mainprog_ptr->bg_green =
+                     mainprog_ptr->bg_blue = pBackground->gray? 255 : 0;
+               else if (bit_depth == 2)
+                   mainprog_ptr->bg_red = mainprog_ptr->bg_green =
+                     mainprog_ptr->bg_blue = (255/3) * pBackground->gray;
+               else /* bit_depth == 4 */
+                   mainprog_ptr->bg_red = mainprog_ptr->bg_green =
+                     mainprog_ptr->bg_blue = (255/15) * pBackground->gray;
+           } else {
+               mainprog_ptr->bg_red   = (uch)pBackground->red;
+               mainprog_ptr->bg_green = (uch)pBackground->green;
+               mainprog_ptr->bg_blue  = (uch)pBackground->blue;
+           }
         }
     }
 
diff --git a/libpng-manual.txt b/libpng-manual.txt
index d372144..e39c0ca 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.0beta66 - September 18, 2015
+ libpng version 1.7.0beta66 - October 2, 2015
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.7.0beta66 - September 18, 2015
+ libpng versions 0.97, January 1998, through 1.7.0beta66 - October 2, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -5317,7 +5317,7 @@
 
 XVII. Y2K Compliance in libpng
 
-September 18, 2015
+October 2, 2015
 
 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 c9097f2..3540a8b 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "September 18, 2015"
+.TH LIBPNG 3 "October 2, 2015"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.7.0beta66
 .SH SYNOPSIS
@@ -498,7 +498,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.7.0beta66 - September 18, 2015
+ libpng version 1.7.0beta66 - October 2, 2015
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
@@ -509,7 +509,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.7.0beta66 - September 18, 2015
+ libpng versions 0.97, January 1998, through 1.7.0beta66 - October 2, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -5815,7 +5815,7 @@
 
 .SH XVII. Y2K Compliance in libpng
 
-September 18, 2015
+October 2, 2015
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
@@ -6137,7 +6137,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.7.0beta66 - September 18, 2015:
+Libpng version 1.7.0beta66 - October 2, 2015:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -6160,7 +6160,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.0.7, July 1, 2000, through 1.7.0beta66, September 18, 2015, are
+libpng versions 1.0.7, July 1, 2000, through 1.7.0beta66, October 2, 2015, are
 Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors:
@@ -6254,7 +6254,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-September 18, 2015
+October 2, 2015
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index ae3d960..288ef2a 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "September 18, 2015"
+.TH LIBPNGPF 3 "October 2, 2015"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.7.0beta66
 (private functions)
diff --git a/png.5 b/png.5
index a3fc0a7..cba79c7 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "September 18, 2015"
+.TH PNG 5 "October 2, 2015"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index f081bd7..8a2ad49 100644
--- a/png.c
+++ b/png.c
@@ -699,13 +699,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.7.0beta66 - September 18, 2015" PNG_STRING_NEWLINE \
+     "libpng version 1.7.0beta66 - October 2, 2015" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2015 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.0beta66 - September 18, 2015\
+      return "libpng version 1.7.0beta66 - October 2, 2015\
       Copyright (c) 1998-2015 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 acd1113..f00b3cf 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.7.0beta66, September 18, 2015
+ * libpng version 1.7.0beta66, October 2, 2015
  *
  * Copyright (c) 1998-2015 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -12,7 +12,7 @@
  * Authors and maintainers:
  *   libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
  *   libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
- *   libpng versions 0.97, January 1998, through 1.7.0beta66, September 18, 2015: Glenn
+ *   libpng versions 0.97, January 1998, through 1.7.0beta66, October 2, 2015: Glenn
  *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -252,7 +252,7 @@
  *
  * This code is released under the libpng license.
  *
- * libpng versions 1.0.7, July 1, 2000, through 1.7.0beta66, September 18, 2015, are
+ * libpng versions 1.0.7, July 1, 2000, through 1.7.0beta66, October 2, 2015, are
  * Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.0.6
  * with the following individuals added to the list of Contributing Authors:
@@ -361,7 +361,7 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    September 18, 2015
+ *    October 2, 2015
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
@@ -431,7 +431,7 @@
 /* Version information for png.h - this should match the version in png.c */
 #define PNG_LIBPNG_VER_STRING "1.7.0beta66"
 #define PNG_HEADER_VERSION_STRING \
-     " libpng version 1.7.0beta66 - September 18, 2015\n"
+     " libpng version 1.7.0beta66 - October 2, 2015\n"
 
 #define PNG_LIBPNG_VER_SONUM   17
 #define PNG_LIBPNG_VER_DLLNUM  17
diff --git a/pngconf.h b/pngconf.h
index 396320e..9441685 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.7.0beta66, September 18, 2015
+ * libpng version 1.7.0beta66, October 2, 2015
  *
  * Copyright (c) 1998-2015 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtrans.c b/pngtrans.c
index 84a1bfb..ee07f4c 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1543,7 +1543,7 @@
       const png_uint_32 codes = tr->codes;
       png_uint_32 code = codes;
       unsigned int size, hwm, i;
-      png_byte output[32];
+      png_byte output[32] = { 0 };
 
       /* This catches an empty codes array, which would cause all the input to
        * be skipped and, potentially, a garbage output[] to be written (once) to
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index 52b85a0..587245c 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.7.0beta66 - September 18, 2015
+libpng version 1.7.0beta66 - October 2, 2015
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index cfdc24e..b65fbee 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.0beta66 - September 18, 2015
+ * libpng version 1.7.0beta66 - October 2, 2015
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index e2c3003..4df8f21 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.7.0beta66 - September 18, 2015
+Makefiles for  libpng version 1.7.0beta66 - October 2, 2015
 
 pnglibconf.h.prebuilt       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 0413b8e..fc20a3c 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -2,7 +2,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng version 1.7.0beta66 - September 18, 2015 */
+/* Libpng version 1.7.0beta66 - October 2, 2015 */
 
 /* Copyright (c) 1998-2015 Glenn Randers-Pehrson */
 
