diff --git a/ANNOUNCE b/ANNOUNCE
index 6908c96..7b30d23 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-Libpng 1.6.18beta03 - May 5, 2015
+Libpng 1.6.18beta03 - May 6, 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.
@@ -38,7 +38,7 @@
   Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
     (Bug report by Viktor Szaka'ts).
 
-Version 1.6.18beta03 [May 5, 2015]
+Version 1.6.18beta03 [May 6, 2015]
   Replaced "unexpected" with an integer (0xabadca11) in pngset.c
     where a long was expected, to avoid a compiler warning when PNG_DEBUG > 1.
   Added contrib/examples/simpleover.c, to demonstrate how to handle
diff --git a/CHANGES b/CHANGES
index 34bef16..7d414b2 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5218,7 +5218,7 @@
   Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
     (Bug report by Viktor Szaka'ts).
 
-Version 1.6.18beta03 [May 5, 2015]
+Version 1.6.18beta03 [May 6, 2015]
   Replaced "unexpected" with an integer (0xabadca11) in pngset.c
     where a long was expected, to avoid a compiler warning when PNG_DEBUG > 1.
   Added contrib/examples/simpleover.c, to demonstrate how to handle
diff --git a/LICENSE b/LICENSE
index fccef96..548b584 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.6.18beta03, April 26, 2015, are
+libpng versions 1.2.6, August 15, 2004, through 1.6.18beta03, May 6, 2015, are
 Copyright (c) 2004, 2006-2015 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
-April 26, 2015
+May 6, 2015
diff --git a/README b/README
index 009ad37..87e7f47 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.6.18beta03 - April 26, 2015 (shared library 16.0)
+README for libpng version 1.6.18beta03 - May 6, 2015 (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/contrib/examples/simpleover.c b/contrib/examples/simpleover.c
index 0a760b8..e253c69 100644
--- a/contrib/examples/simpleover.c
+++ b/contrib/examples/simpleover.c
@@ -65,7 +65,7 @@
       unsigned int x = 0;
 
       do {
-         unsigned int t = x + (x >> 16) + /*(x >> 31)*/ + r;
+         unsigned int t = x + (x >> 16) /*+ (x >> 31)*/ + r;
          double v = x, errtest;
 
          if (t < x) {
diff --git a/libpng-manual.txt b/libpng-manual.txt
index 27ebbe0..9f2c2c0 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.18beta03 - April 26, 2015
+ libpng version 1.6.18beta03 - May 6, 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.6.18beta03 - April 26, 2015
+ libpng versions 0.97, January 1998, through 1.6.18beta03 - May 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -5279,7 +5279,7 @@
 
 XVI. Y2K Compliance in libpng
 
-April 26, 2015
+May 6, 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 fad1c82..cfbdc51 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "April 26, 2015"
+.TH LIBPNG 3 "May 6, 2015"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.18beta03
 .SH SYNOPSIS
@@ -504,7 +504,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.18beta03 - April 26, 2015
+ libpng version 1.6.18beta03 - May 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
@@ -515,7 +515,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.18beta03 - April 26, 2015
+ libpng versions 0.97, January 1998, through 1.6.18beta03 - May 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -5783,7 +5783,7 @@
 
 .SH XVI. Y2K Compliance in libpng
 
-April 26, 2015
+May 6, 2015
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
@@ -6101,7 +6101,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.6.18beta03 - April 26, 2015:
+Libpng version 1.6.18beta03 - May 6, 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).
 
@@ -6124,7 +6124,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.18beta03, April 26, 2015, are
+libpng versions 1.2.6, August 15, 2004, through 1.6.18beta03, May 6, 2015, are
 Copyright (c) 2004,2006-2015 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
@@ -6223,7 +6223,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-April 26, 2015
+May 6, 2015
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index d2bd472..ca1e376 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "April 26, 2015"
+.TH LIBPNGPF 3 "May 6, 2015"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.18beta03
 (private functions)
diff --git a/png.5 b/png.5
index ff15e29..bc5a7db 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "April 26, 2015"
+.TH PNG 5 "May 6, 2015"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 92fe439..1de550f 100644
--- a/png.c
+++ b/png.c
@@ -766,13 +766,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.6.18beta03 - April 26, 2015" PNG_STRING_NEWLINE \
+     "libpng version 1.6.18beta03 - May 6, 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.6.18beta03 - April 26, 2015\
+      return "libpng version 1.6.18beta03 - May 6, 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 fdc1018..a4437a0 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.6.18beta03, May 5, 2015
+ * libpng version 1.6.18beta03, May 6, 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.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- *   libpng versions 0.97, January 1998, through 1.6.18beta03, May 5, 2015: Glenn
+ *   libpng versions 0.97, January 1998, through 1.6.18beta03, May 6, 2015: Glenn
  *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -248,7 +248,7 @@
  *
  * This code is released under the libpng license.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.6.18beta03, May 5, 2015, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.6.18beta03, May 6, 2015, are
  * Copyright (c) 2004, 2006-2015 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:
@@ -360,7 +360,7 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    May 5, 2015
+ *    May 6, 2015
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
@@ -430,7 +430,7 @@
 /* Version information for png.h - this should match the version in png.c */
 #define PNG_LIBPNG_VER_STRING "1.6.18beta03"
 #define PNG_HEADER_VERSION_STRING \
-     " libpng version 1.6.18beta03 - May 5, 2015\n"
+     " libpng version 1.6.18beta03 - May 6, 2015\n"
 
 #define PNG_LIBPNG_VER_SONUM   16
 #define PNG_LIBPNG_VER_DLLNUM  16
diff --git a/pngpriv.h b/pngpriv.h
index a767f77..b514c4f 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -1,7 +1,7 @@
 
 /* pngpriv.h - private declarations for use inside libpng
  *
- * Last changed in libpng 1.6.17 [March 26, 2015]
+ * Last changed in libpng 1.6.18 [(PENDING RELEASE)]
  * Copyright (c) 1998-2015 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.)
diff --git a/pngwrite.c b/pngwrite.c
index e3c2034..64b2438 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -216,8 +216,13 @@
       if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0 &&
           info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       {
-         int j;
-         for (j = 0; j<(int)info_ptr->num_trans; j++)
+         int j, jend;
+
+         jend = info_ptr->num_trans;
+         if (jend > PNG_MAX_PALETTE_LENGTH)
+            jend = PNG_MAX_PALETTE_LENGTH;
+
+         for (j = 0; j<jend; ++j)
             info_ptr->trans_alpha[j] =
                (png_byte)(255 - info_ptr->trans_alpha[j]);
       }
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index 1f445f3..74493d5 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.6.18beta03 - April 26, 2015
+libpng version 1.6.18beta03 - May 6, 2015
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index fd6174b..da30aa3 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.18beta03 - April 26, 2015
+ * libpng version 1.6.18beta03 - May 6, 2015
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index c2c5581..b636e20 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.6.18beta03 - April 26, 2015
+Makefiles for  libpng version 1.6.18beta03 - May 6, 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 6b2223a..39d5367 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -2,7 +2,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng version 1.6.18beta03 - April 26, 2015 */
+/* Libpng version 1.6.18beta03 - May 6, 2015 */
 
 /* Copyright (c) 1998-2014 Glenn Randers-Pehrson */
 
