diff --git a/CMakeLists.txt b/CMakeLists.txt
index 33ebe9e..a2cc2bd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -255,7 +255,7 @@
 # SET UP LINKS
 if(PNG_SHARED)
   set_target_properties(${PNG_LIB_NAME} PROPERTIES
-#   VERSION 14.${PNGLIB_RELEASE}.1.4.15rc01
+#   VERSION 14.${PNGLIB_RELEASE}.1.4.15rc02
     VERSION 14.${PNGLIB_RELEASE}.0
     SOVERSION 14
     CLEAN_DIRECT_OUTPUT 1)
diff --git a/INSTALL b/INSTALL
index 091a027..f5d9103 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.4.15rc01 - February 5, 2015
+Installing libpng version 1.4.15rc02 - February 6, 2015
 
 On Unix/Linux and similar systems, you can simply type
 
@@ -46,7 +46,7 @@
 correspond to the version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.4.15rc01" or "libpng14" and "zlib-1.2.3"
+might be called "libpng-1.4.15rc02" or "libpng14" and "zlib-1.2.3"
 or "zlib123") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
diff --git a/LICENSE b/LICENSE
index 2005087..6ae722b 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.4.15rc01, February 5, 2015, are
+libpng versions 1.2.6, August 15, 2004, through 1.4.15rc02, February 6, 2015, 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
-February 5, 2015
+February 6, 2015
diff --git a/Makefile.am b/Makefile.am
index a72c1b0..4a48030 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -79,7 +79,7 @@
 	${srcdir}/contrib/pngsuite/* \
 	${srcdir}/contrib/visupng/* \
 	$(TESTS) \
-	example.c libpng-1.4.15rc01.txt
+	example.c libpng-1.4.15rc02.txt
 
 CLEANFILES= pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
 libpng.sym
diff --git a/Makefile.in b/Makefile.in
index 7e0a48f..a5eca68 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -616,7 +616,7 @@
 	${srcdir}/contrib/pngsuite/* \
 	${srcdir}/contrib/visupng/* \
 	$(TESTS) \
-	example.c libpng-1.4.15rc01.txt
+	example.c libpng-1.4.15rc02.txt
 
 CLEANFILES = pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
 libpng.sym
diff --git a/README b/README
index 2b4514a..e46dd98 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.4.15rc01 - February 5, 2015 (shared library 14.0)
+README for libpng version 1.4.15rc02 - February 6, 2015 (shared library 14.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
@@ -187,9 +187,9 @@
        makefile.std     =>  Generic UNIX makefile (cc, creates static
                             libpng.a)
        makefile.elf     =>  Linux/ELF makefile symbol versioning,
-                            (gcc, creates libpng14.so.14.1.4.15rc01)
+                            (gcc, creates libpng14.so.14.1.4.15rc02)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng14.so.14.1.4.15rc01)
+                            (gcc, creates libpng14.so.14.1.4.15rc02)
        makefile.gcc     =>  Generic makefile (gcc, creates static libpng.a)
        makefile.knr     =>  Archaic UNIX Makefile that converts files with
                             ansi2knr (Requires ansi2knr.c from
@@ -211,12 +211,12 @@
        makefile.openbsd =>  OpenBSD makefile
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
        makefile.sggcc   =>  Silicon Graphics
-                            (gcc, creates libpng14.so.14.1.4.15rc01)
+                            (gcc, creates libpng14.so.14.1.4.15rc02)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng14.so.14.1.4.15rc01)
+                            (gcc, creates libpng14.so.14.1.4.15rc02)
        makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng14.so.14.1.4.15rc01)
+                            (gcc, creates libpng14.so.14.1.4.15rc02)
        makefile.32sunu  =>  Sun Ultra 32-bit makefile
        makefile.64sunu  =>  Sun Ultra 64-bit makefile
        makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc
diff --git a/configure b/configure
index 491eb18..680463d 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libpng 1.4.15rc01.
+# Generated by GNU Autoconf 2.69 for libpng 1.4.15rc02.
 #
 # Report bugs to <png-mng-implement@lists.sourceforge.net>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libpng'
 PACKAGE_TARNAME='libpng'
-PACKAGE_VERSION='1.4.15rc01'
-PACKAGE_STRING='libpng 1.4.15rc01'
+PACKAGE_VERSION='1.4.15rc02'
+PACKAGE_STRING='libpng 1.4.15rc02'
 PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
 PACKAGE_URL=''
 
@@ -1330,7 +1330,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libpng 1.4.15rc01 to adapt to many kinds of systems.
+\`configure' configures libpng 1.4.15rc02 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1400,7 +1400,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libpng 1.4.15rc01:";;
+     short | recursive ) echo "Configuration of libpng 1.4.15rc02:";;
    esac
   cat <<\_ACEOF
 
@@ -1512,7 +1512,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libpng configure 1.4.15rc01
+libpng configure 1.4.15rc02
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1935,7 +1935,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libpng $as_me 1.4.15rc01, which was
+It was created by libpng $as_me 1.4.15rc02, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2798,7 +2798,7 @@
 
 # Define the identity of the package.
  PACKAGE='libpng'
- VERSION='1.4.15rc01'
+ VERSION='1.4.15rc02'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2914,7 +2914,7 @@
 
 
 
-PNGLIB_VERSION=1.4.15rc01
+PNGLIB_VERSION=1.4.15rc02
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=4
 PNGLIB_RELEASE=15
@@ -13119,7 +13119,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libpng $as_me 1.4.15rc01, which was
+This file was extended by libpng $as_me 1.4.15rc02, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13185,7 +13185,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libpng config.status 1.4.15rc01
+libpng config.status 1.4.15rc02
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index a21f3a2..0bd397a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,14 +16,14 @@
 dnl stamps are correct
 AC_PREREQ(2.59)
 
-AC_INIT([libpng], [1.4.15rc01], [png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng], [1.4.15rc02], [png-mng-implement@lists.sourceforge.net])
 AM_INIT_AUTOMAKE
 dnl stop configure from automagically running automake
 AM_MAINTAINER_MODE
 
 dnl Version number stuff here:
 
-PNGLIB_VERSION=1.4.15rc01
+PNGLIB_VERSION=1.4.15rc02
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=4
 PNGLIB_RELEASE=15
diff --git a/libpng-1.4.15rc01.txt b/libpng-1.4.15rc02.txt
similarity index 99%
rename from libpng-1.4.15rc01.txt
rename to libpng-1.4.15rc02.txt
index f222564..e2c8688 100644
--- a/libpng-1.4.15rc01.txt
+++ b/libpng-1.4.15rc02.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.4.15rc01 - February 5, 2015
+ libpng version 1.4.15rc02 - February 6, 2015
  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.4.15rc01 - February 5, 2015
+ libpng versions 0.97, January 1998, through 1.4.15rc02 - February 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
 
@@ -906,7 +906,7 @@
 As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
 added.  It expands the sample depth without changing tRNS to alpha.
 
-As of libpng version 1.4.15rc01, not all possible expansions are supported.
+As of libpng version 1.4.15rc02, not all possible expansions are supported.
 
 In the following table, the 01 means grayscale with depth<8, 31 means
 indexed with depth<8, other numerals represent the color type, "T" means
@@ -3316,13 +3316,13 @@
 
 XIII. Y2K Compliance in libpng
 
-February 5, 2015
+February 6, 2015
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.4.15rc01 are Y2K compliant.  It is my belief that earlier
+upward through 1.4.15rc02 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
diff --git a/libpng.3 b/libpng.3
index 4d623a0..1dc8bac 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "February 5, 2015"
+.TH LIBPNG 3 "February 6, 2015"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.4.15rc01
+libpng \- Portable Network Graphics (PNG) Reference Library 1.4.15rc02
 .SH SYNOPSIS
 \fB
 #include <png.h>\fP
@@ -442,7 +442,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.4.15rc01 - February 5, 2015
+ libpng version 1.4.15rc02 - February 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
@@ -453,7 +453,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.4.15rc01 - February 5, 2015
+ libpng versions 0.97, January 1998, through 1.4.15rc02 - February 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
 
@@ -1348,7 +1348,7 @@
 As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
 added.  It expands the sample depth without changing tRNS to alpha.
 
-As of libpng version 1.4.15rc01, not all possible expansions are supported.
+As of libpng version 1.4.15rc02, not all possible expansions are supported.
 
 In the following table, the 01 means grayscale with depth<8, 31 means
 indexed with depth<8, other numerals represent the color type, "T" means
@@ -3758,13 +3758,13 @@
 
 .SH XIII. Y2K Compliance in libpng
 
-February 5, 2015
+February 6, 2015
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.4.15rc01 are Y2K compliant.  It is my belief that earlier
+upward through 1.4.15rc02 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
@@ -4036,7 +4036,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.4.15rc01 - February 5, 2015:
+Libpng version 1.4.15rc02 - February 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).
 
@@ -4059,7 +4059,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.4.15rc01, February 5, 2015, are
+libpng versions 1.2.6, August 15, 2004, through 1.4.15rc02, February 6, 2015, 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
@@ -4158,7 +4158,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-February 5, 2015
+February 6, 2015
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index 13bc53a..3c92f80 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "February 5, 2015"
+.TH LIBPNGPF 3 "February 6, 2015"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.4.15rc01
+libpng \- Portable Network Graphics (PNG) Reference Library 1.4.15rc02
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>
diff --git a/png.5 b/png.5
index 3333c03..115424e 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "February 5, 2015"
+.TH PNG 5 "February 6, 2015"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index c4efb02..c59e293 100644
--- a/png.c
+++ b/png.c
@@ -17,7 +17,7 @@
 #include "pngpriv.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_4_15rc01 Your_png_h_is_not_version_1_4_15rc01;
+typedef version_1_4_15rc02 Your_png_h_is_not_version_1_4_15rc02;
 
 /* Tells libpng that we have already handled the first "num_bytes" bytes
  * of the PNG file signature.  If the PNG data is embedded into another
@@ -74,12 +74,16 @@
 png_zalloc(voidpf png_ptr, uInt items, uInt size)
 {
    png_voidp ptr;
-   png_structp p=(png_structp)png_ptr;
-   png_uint_32 save_flags=p->flags;
+   png_structp p;
+   png_uint_32 save_flags;
    png_alloc_size_t num_bytes;
 
    if (png_ptr == NULL)
       return (NULL);
+
+   p=(png_structp)png_ptr;
+   save_flags=p->flags;
+
    if (items > PNG_UINT_32_MAX/size)
    {
      png_warning (p, "Potential overflow in png_zalloc()");
@@ -547,13 +551,13 @@
 #else
 #ifdef __STDC__
    return ((png_charp) PNG_STRING_NEWLINE \
-     "libpng version 1.4.15rc01 - February 5, 2015" PNG_STRING_NEWLINE \
+     "libpng version 1.4.15rc02 - February 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 ((png_charp) "libpng version 1.4.15rc01 - February 5, 2015\
+      return ((png_charp) "libpng version 1.4.15rc02 - February 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.");
@@ -721,14 +725,14 @@
         "Ignoring attempt to set negative chromaticity value");
       ret = 0;
    }
-   if (white_x > (png_fixed_point) PNG_UINT_31_MAX ||
-       white_y > (png_fixed_point) PNG_UINT_31_MAX ||
-         red_x > (png_fixed_point) PNG_UINT_31_MAX ||
-         red_y > (png_fixed_point) PNG_UINT_31_MAX ||
-       green_x > (png_fixed_point) PNG_UINT_31_MAX ||
-       green_y > (png_fixed_point) PNG_UINT_31_MAX ||
-        blue_x > (png_fixed_point) PNG_UINT_31_MAX ||
-        blue_y > (png_fixed_point) PNG_UINT_31_MAX )
+   if (white_x >= (png_fixed_point) PNG_UINT_31_MAX ||
+       white_y >= (png_fixed_point) PNG_UINT_31_MAX ||
+         red_x >= (png_fixed_point) PNG_UINT_31_MAX ||
+         red_y >= (png_fixed_point) PNG_UINT_31_MAX ||
+       green_x >= (png_fixed_point) PNG_UINT_31_MAX ||
+       green_y >= (png_fixed_point) PNG_UINT_31_MAX ||
+        blue_x >= (png_fixed_point) PNG_UINT_31_MAX ||
+        blue_y >= (png_fixed_point) PNG_UINT_31_MAX )
    {
       png_warning(png_ptr,
         "Ignoring attempt to set chromaticity value exceeding 21474.83");
diff --git a/pngconf.h b/pngconf.h
index f5d6112..3182432 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.4.15rc01 - February 5, 2015
+ * libpng version 1.4.15rc02 - February 6, 2015
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpriv.h b/pngpriv.h
index e20a08e..a672b38 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -1,7 +1,7 @@
 
 /* pngpriv.h - private declarations for use inside libpng
  *
- * libpng version 1.4.15rc01 - February 5, 2015
+ * libpng version 1.4.15rc02 - February 6, 2015
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2014 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtest.c b/pngtest.c
index 7010271..1107d32 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1702,4 +1702,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_4_15rc01 your_png_h_is_not_version_1_4_15rc01;
+typedef version_1_4_15rc02 your_png_h_is_not_version_1_4_15rc02;
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index 94b8944..8a84ba4 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.4.15rc01 - February 5, 2015
+libpng version 1.4.15rc02 - February 6, 2015
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index ac15c78..7494bb7 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
 <!--
  * zlib.props - location of zlib source and build
  *
- * libpng version 1.4.15rc01 - February 5, 2015
+ * libpng version 1.4.15rc02 - February 6, 2015
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index 840b8de..92adf56 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,8 +1,8 @@
 
-Makefiles for  libpng version 1.4.15rc01 - February 5, 2015
+Makefiles for  libpng version 1.4.15rc02 - February 6, 2015
 
  makefile.linux    =>  Linux/ELF makefile
-                       (gcc, creates libpng14.so.14.1.4.15rc01)
+                       (gcc, creates libpng14.so.14.1.4.15rc02)
  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a)
  makefile.knr      =>  Archaic UNIX Makefile that converts files with
                        ansi2knr (Requires ansi2knr.c from
@@ -20,7 +20,7 @@
  makefile.dec      =>  DEC Alpha UNIX makefile
  makefile.dj2      =>  DJGPP 2 makefile
  makefile.elf      =>  Linux/ELF makefile symbol versioning,
-                       (gcc, creates libpng14.so.14.1.4.15rc01)
+                       (gcc, creates libpng14.so.14.1.4.15rc02)
  makefile.freebsd  =>  FreeBSD makefile
  makefile.gcc      =>  Generic gcc makefile
  makefile.hpgcc    =>  HPUX makefile using gcc
@@ -36,12 +36,12 @@
  makefile.os2      =>  OS/2 Makefile (gcc and emx, requires pngos2.def)
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
  makefile.sggcc    =>  Silicon Graphics (gcc,
-                       creates libpng14.so.14.1.4.15rc01)
+                       creates libpng14.so.14.1.4.15rc02)
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
  makefile.solaris  =>  Solaris 2.X makefile (gcc,
-                       creates libpng14.so.14.1.4.15rc01)
+                       creates libpng14.so.14.1.4.15rc02)
  makefile.so9      =>  Solaris 9 makefile (gcc,
-                       creates libpng14.so.14.1.4.15rc01)
+                       creates libpng14.so.14.1.4.15rc02)
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
  makefile.sunos    =>  Sun makefile
  makefile.32sunu   =>  Sun Ultra 32-bit makefile
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index 6b10edf..00b37e9 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -11,7 +11,7 @@
 
 # Modeled after libxml-config.
 
-version=1.4.15rc01
+version=1.4.15rc02
 prefix=""
 libdir=""
 libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index e6a8042..2acfc2b 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -5,6 +5,6 @@
 
 Name: libpng
 Description: Loads and saves PNG files
-Version: 1.4.15rc01
+Version: 1.4.15rc02
 Libs: -L${libdir} -lpng14
 Cflags: -I${includedir}
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index f48826e..d96df7b 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -17,7 +17,7 @@
 
 LIB=	png14
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.4.15rc01
+SHLIB_MINOR=	1.4.15rc02
 SRCS=	png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
 	pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 	pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index fb774c6..729223f 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -17,7 +17,7 @@
 
 LIB=	png
 SHLIB_MAJOR=	3
-SHLIB_MINOR=	1.4.15rc01
+SHLIB_MINOR=	1.4.15rc02
 SRCS=	png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
 	pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 	pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd
index 0673b16..d0f3693 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -11,7 +11,7 @@
 MANDIR= ${PREFIX}/man/cat
 
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.4.15rc01
+SHLIB_MINOR=	1.4.15rc02
 
 LIB=	png
 SRCS=	png.c pngerror.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/png32ce.def b/scripts/png32ce.def
index 1191d73..17559bf 100644
--- a/scripts/png32ce.def
+++ b/scripts/png32ce.def
@@ -15,7 +15,7 @@
  png_get_int_32
 
 EXPORTS
-;Version 1.4.15rc01
+;Version 1.4.15rc02
   png_build_grayscale_palette  @1
 ;  png_check_sig        @2
   png_chunk_error      @3
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index d8b705e..9e55b0a 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
 ; PNG.LIB module definition file for OS/2
 ;----------------------------------------
 
-; Version 1.4.15rc01
+; Version 1.4.15rc02
 
 LIBRARY		PNG
 DESCRIPTION	"PNG image compression library for OS/2"
diff --git a/scripts/pngwin.def b/scripts/pngwin.def
index b061529..046ee9d 100644
--- a/scripts/pngwin.def
+++ b/scripts/pngwin.def
@@ -5,7 +5,7 @@
 LIBRARY
 
 EXPORTS
-;Version 1.4.15rc01
+;Version 1.4.15rc02
   png_build_grayscale_palette
   png_chunk_error
   png_chunk_warning
