diff --git a/ANNOUNCE b/ANNOUNCE
index 1dbb9ef..2714396 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-Libpng 1.6.26beta05 - October 5, 2016
+Libpng 1.6.26beta05 - October 6, 2016
 
 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.
@@ -61,7 +61,7 @@
     when PNG_USE_ABS is defined.
   Fixed offsets in contrib/intel/intel_sse.patch
 
-Version 1.6.26beta05 [October 5, 2016]
+Version 1.6.26beta05 [October 6, 2016]
   Changed integer constant 4294967294 to unsigned 4294967294U in pngconf.h
     to avoid a signed/unsigned compare in the preprocessor.
 
diff --git a/CHANGES b/CHANGES
index e26ce5e..1f61fdd 100644
--- a/CHANGES
+++ b/CHANGES
@@ -593,7 +593,7 @@
     with trailing compressed parts easier in the future, and added new functions
     png_free_iCCP, png_free_pCAL, png_free_sPLT, png_free_text, png_get_iCCP,
     png_get_spalettes, png_set_iCCP, png_set_spalettes (Eric S. Raymond).
-  NOTE: Applications that write text chunks MUST define png_text->lang
+    NOTE: Applications that write text chunks MUST define png_text->lang
     before calling png_set_text(). It must be set to NULL if you want to
     write tEXt or zTXt chunks.  If you want your application to be able to
     run with older versions of libpng, use
@@ -5739,7 +5739,7 @@
     when PNG_USE_ABS is defined.
   Fixed offsets in contrib/intel/intel_sse.patch
 
-Version 1.6.26beta05 [October 5, 2016]
+Version 1.6.26beta05 [October 6, 2016]
   Changed integer constant 4294967294 to unsigned 4294967294U in pngconf.h
     to avoid a signed/unsigned compare in the preprocessor.
 
@@ -5750,5 +5750,4 @@
 or to glennrp at users.sourceforge.net
 
 Glenn R-P
-
 #endif
diff --git a/LICENSE b/LICENSE
index 26fb52e..3c952b0 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.6.26beta05, October 3, 2016 are
+libpng versions 1.0.7, July 1, 2000 through 1.6.26beta05, October 6, 2016 are
 Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
 derived from libpng-1.0.6, and are distributed according to the same
 disclaimer and license as libpng-1.0.6 with the following individuals
@@ -127,4 +127,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-October 3, 2016
+October 6, 2016
diff --git a/README b/README
index 15cf383..f97d9aa 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.6.26beta05 - October 3, 2016 (shared library 16.0)
+README for libpng version 1.6.26beta05 - October 6, 2016 (shared library 16.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/TODO b/TODO
index e455af7..cdb9e1f 100644
--- a/TODO
+++ b/TODO
@@ -26,6 +26,5 @@
 Add interpolated method of handling interlacing.
 Switch to the simpler zlib (zlib/libpng) license if legally possible.
 Extend pngvalid.c to validate more of the libpng transformations.
-Quiet remaining compiler warnings (mostly -Wconversion warnings).
 
 */
diff --git a/libpng-manual.txt b/libpng-manual.txt
index 997ac9a..9e96391 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.6.26beta05 - October 3, 2016
+ libpng version 1.6.26beta05 - October 6, 2016
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2016 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.26beta05 - October 3, 2016
+ libpng versions 0.97, January 1998, through 1.6.26beta05 - October 6, 2016
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2016 Glenn Randers-Pehrson
 
diff --git a/libpng.3 b/libpng.3
index c6f29a3..e741c7a 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "October 3, 2016"
+.TH LIBPNG 3 "October 6, 2016"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.26beta05
 .SH SYNOPSIS
@@ -510,7 +510,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.26beta05 - October 3, 2016
+ libpng version 1.6.26beta05 - October 6, 2016
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2016 Glenn Randers-Pehrson
@@ -521,7 +521,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.26beta05 - October 3, 2016
+ libpng versions 0.97, January 1998, through 1.6.26beta05 - October 6, 2016
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2016 Glenn Randers-Pehrson
 
@@ -6022,7 +6022,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.6.26beta05 - October 3, 2016:
+Libpng version 1.6.26beta05 - October 6, 2016:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -6047,7 +6047,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.0.7, July 1, 2000 through 1.6.26beta05, October 3, 2016 are
+libpng versions 1.0.7, July 1, 2000 through 1.6.26beta05, October 6, 2016 are
 Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
 derived from libpng-1.0.6, and are distributed according to the same
 disclaimer and license as libpng-1.0.6 with the following individuals
@@ -6172,7 +6172,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-October 3, 2016
+October 6, 2016
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index 7957060..e6d42ec 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "October 3, 2016"
+.TH LIBPNGPF 3 "October 6, 2016"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.26beta05
 (private functions)
diff --git a/png.5 b/png.5
index ad3ba48..7814c87 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "October 3, 2016"
+.TH PNG 5 "October 6, 2016"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 082a748..8bc15ae 100644
--- a/png.c
+++ b/png.c
@@ -775,14 +775,14 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-      "libpng version 1.6.26beta05 - October 3, 2016" PNG_STRING_NEWLINE \
+      "libpng version 1.6.26beta05 - October 6, 2016" PNG_STRING_NEWLINE \
       "Copyright (c) 1998-2002,2004,2006-2016 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.6.26beta05 - October 3, 2016\
+   return "libpng version 1.6.26beta05 - October 6, 2016\
       Copyright (c) 1998-2002,2004,2006-2016 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 5ba5eff..6485c9d 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.6.26beta05, October 3, 2016
+ * libpng version 1.6.26beta05, October 6, 2016
  *
  * Copyright (c) 1998-2002,2004,2006-2016 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.6.26beta05, October 3, 2016:
+ *   libpng versions 0.97, January 1998, through 1.6.26beta05, October 6, 2016:
  *     Glenn Randers-Pehrson.
  *   See also "Contributing Authors", below.
  */
@@ -29,7 +29,7 @@
  * files that are distributed with libpng have other copyright owners and
  * are released under other open source licenses.
  *
- * libpng versions 1.0.7, July 1, 2000 through 1.6.26beta05, October 3, 2016 are
+ * libpng versions 1.0.7, July 1, 2000 through 1.6.26beta05, October 6, 2016 are
  * Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
  * derived from libpng-1.0.6, and are distributed according to the same
  * disclaimer and license as libpng-1.0.6 with the following individuals
@@ -246,7 +246,7 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    October 3, 2016
+ *    October 6, 2016
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
@@ -315,7 +315,7 @@
 
 /* Version information for png.h - this should match the version in png.c */
 #define PNG_LIBPNG_VER_STRING "1.6.26beta05"
-#define PNG_HEADER_VERSION_STRING " libpng version 1.6.26beta05 - October 3, 2016\n"
+#define PNG_HEADER_VERSION_STRING " libpng version 1.6.26beta05 - October 6, 2016\n"
 
 #define PNG_LIBPNG_VER_SONUM   16
 #define PNG_LIBPNG_VER_DLLNUM  16
diff --git a/pngconf.h b/pngconf.h
index 1e27bc8..4f7de53 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.6.26beta05, October 5, 2016
+ * libpng version 1.6.26beta05, October 6, 2016
  *
  * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index 4e79d31..debfed4 100644
--- a/pngread.c
+++ b/pngread.c
@@ -4094,7 +4094,7 @@
        * bits; this is just to verify that the 'row_stride' argument can be
        * represented.
        */
-      if (image->width <= 0x7FFFFFFFU/channels) /* no overflow */
+      if (image->width <= 0x7fffffffU/channels) /* no overflow */
       {
          png_uint_32 check;
          const png_uint_32 png_row_stride = image->width * channels;
@@ -4131,7 +4131,7 @@
              * accomodated on 64-bit systems.
              */
             if (image->height <=
-                0xFFFFFFFFU/PNG_IMAGE_PIXEL_COMPONENT_SIZE(image->format)/check)
+                0xffffffffU/PNG_IMAGE_PIXEL_COMPONENT_SIZE(image->format)/check)
             {
                if ((image->format & PNG_FORMAT_FLAG_COLORMAP) == 0 ||
                   (image->colormap_entries > 0 && colormap != NULL))
diff --git a/pngwrite.c b/pngwrite.c
index e354099..5682da2 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1942,7 +1942,7 @@
    {
       const unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(image->format);
 
-      if (image->width <= 0x7FFFFFFFU/channels) /* no overflow */
+      if (image->width <= 0x7fffffffU/channels) /* no overflow */
       {
          png_uint_32 check;
          const png_uint_32 png_row_stride = image->width * channels;
@@ -1962,7 +1962,7 @@
              * limits the whole image size to 32 bits for API compatibility with
              * the current, 32-bit, PNG_IMAGE_BUFFER_SIZE macro.
              */
-            if (image->height > 0xFFFFFFFF/png_row_stride)
+            if (image->height > 0xffffffffU/png_row_stride)
                png_error(image->opaque->png_ptr, "memory image too large");
          }
 
diff --git a/projects/vstudio/README.txt b/projects/vstudio/README.txt
index fd4ac8e..a252881 100644
--- a/projects/vstudio/README.txt
+++ b/projects/vstudio/README.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.6.26beta05 - October 3, 2016
+libpng version 1.6.26beta05 - October 6, 2016
 
 Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index e808d8b..8ff5f35 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
 <!--
  * zlib.props - location of zlib source
  *
- * libpng version 1.6.26beta05 - October 3, 2016
+ * libpng version 1.6.26beta05 - October 6, 2016
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index 60b182c..56eeef2 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.6.26beta05 - October 3, 2016
+Makefiles for  libpng version 1.6.26beta05 - October 6, 2016
 
 pnglibconf.h.prebuilt       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index d2d1c40..d75450d 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -2,7 +2,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng version 1.6.26beta05 - October 3, 2016 */
+/* Libpng version 1.6.26beta05 - October 6, 2016 */
 
 /* Copyright (c) 1998-2015 Glenn Randers-Pehrson */
 
