Imported from libpng-1.2.3rc2.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index 6fdb4ab..95d9acb 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.2.3rc1 - April 27, 2002
+Libpng 1.2.3rc2 - May 1, 2002
 
 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.
@@ -25,6 +25,13 @@
     to put one in their application.
   Restored png_zalloc() and png_zfree() prototypes to version 1.2.1 and
     removed them from module definition files.
+version 1.2.3rc2 [May 1, 2002]
+  Fixed bug in reporting number of channels in pngget.c and pngset.c,
+    that was introduced in version 1.2.2beta5.
+  Exported png_zalloc(), png_zfree(), png_default_read(), png_default_write(),
+    png_default_flush(), and png_push_fill_buffer() and included them in
+    module definition files.
+  Added "libpng.pc" dependency to the "install-shared" target in 15 makefiles.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index c963ce9..f442531 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1078,7 +1078,7 @@
   Revised 15 makefiles to link libpng.a to libpngNN.a and the include libpng
   subdirectory to libpngNN subdirectory without the full pathname.
   Moved generation of libpng.pc from "install" to "all" in 15 makefiles.
-version 1.2.3rc1 [April 27, 2002]
+version 1.2.3rc1 [April 28, 2002]
   Added install-man target to 15 makefiles (Dimitri Papadopolous-Orfanos).
   Added $(DESTDIR) feature to 24 makefiles (Tim Mooney)
   Fixed bug with $prefix, should be $(prefix) in makefile.hpux.
@@ -1090,6 +1090,13 @@
     to put one in their application.
   Restored png_zalloc() and png_zfree() prototypes to version 1.2.1 and
     removed them from module definition files.
+version 1.2.3rc2 [May 1, 2002]
+  Fixed bug in reporting number of channels in pngget.c and pngset.c,
+    that was introduced in version 1.2.2beta5.
+  Exported png_zalloc(), png_zfree(), png_default_read(), png_default_write(),
+    png_default_flush(), and png_push_fill_buffer() and included them in
+    module definition files.
+  Added "libpng.pc" dependency to the "install-shared" target in 15 makefiles.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index c9f63d2..238ebac 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.2.3rc1 - April 27, 2002
+Installing libpng version 1.2.3rc2 - May 1, 2002
 
 Before installing libpng, you must first install zlib.  zlib
 can usually be found wherever you got libpng.  zlib can be
@@ -10,7 +10,7 @@
 version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.2.3rc1" or "lpng109" and "zlib-1.1.3"
+might be called "libpng-1.2.3rc2" or "lpng109" and "zlib-1.1.3"
 or "zlib113") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -64,8 +64,8 @@
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc1)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc1,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc2)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.3rc2,
                        uses assembler code tuned for Intel MMX platform)
  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a)
  makefile.knr      =>  Archaic UNIX Makefile that converts files with
@@ -86,10 +86,10 @@
  makefile.ne0bsd  =>  NetBSD/cc makefile, uses PNGGCCRD, makes libpng0.so
  makefile.openbsd  =>  OpenBSD makefile
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
- makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc1)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc2)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.3rc1)
- makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.3rc1)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.3rc2)
+ makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.3rc2)
  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/KNOWNBUG b/KNOWNBUG
index 6413cbf..f05f79f 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,24 +1,7 @@
 
-Known bugs in libpng version 1.2.3rc1
+Known bugs in libpng version 1.2.3rc2
 
-1. April 16, 2002: There are typographical errors in the following:
-   makefile.32sunu, makefile.64sunu, makefile.macosx, makefile.sgi,
-   and makefile.sggcc.
-
-   STATUS: Corrected versions are supplied in
-   libpng-1.2.2patch01-makefiles.tar.gz
-
-2. April 17, 2002: The symbolic link libpng.a -> /..path/lib/libpngNN.a
-   should simply be libpng.a -> libpngNN.a, to make it easier to move
-   the installed files.  Also, libpng.pc should be built at "make all"
-   time instead of "make install" time, to avoid root writing in user's
-   installation directory.
-
-   STATUS: Corrected versions of 15 makefiles are supplied in
-   libpng-1.2.2patch03-makefiles.tar.gz (includes replacements for
-   all of the patch01 and patch02 makefiles).
-
-3. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
+1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
    reading interlaced PNG files, when assembler code is enabled.
 
    STATUS: Under investigation.  The change to pnggccrd.c in libpng-1.2.1
diff --git a/LICENSE b/LICENSE
index f43c86b..2189842 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.3rc1, April 27, 2002, are
+libpng versions 1.0.7, July 1, 2000, through 1.2.3rc2, May 1, 2002, are
 Copyright (c) 2000-2002 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
@@ -99,4 +99,4 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-April 27, 2002
+May 1, 2002
diff --git a/README b/README
index 7268bd4..3f7b849 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.2.3rc1 - April 27, 2002 (shared library 2.1)
+README for libpng 1.2.3rc2 - May 1, 2002 (shared library 2.1)
 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 @@
        descrip.mms      =>  VMS makefile for MMS or MMK
        makefile.std     =>  Generic UNIX makefile (cc, creates static libpng.a)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.3rc1)
+                            (gcc, creates libpng12.so.0.1.2.3rc2)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng12.so.0.1.2.3rc1, uses assembler code
+                            libpng12.so.0.1.2.3rc2, uses assembler code
                             tuned for Intel MMX platform)
        makefile.gcc     =>  Generic makefile (gcc, creates static libpng.a)
        makefile.knr     =>  Archaic UNIX Makefile that converts files with
@@ -210,12 +210,12 @@
        makefile.ne0bsd =>  NetBSD/cc makefile, PNGGCCRD, makes libpng0.so
        makefile.openbsd =>  OpenBSD makefile
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc1)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.3rc2)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng12.so.0.1.2.3rc1)
+                            (gcc, creates libpng12.so.0.1.2.3rc2)
        makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng12.so.0.1.2.3rc1)
+                            (gcc, creates libpng12.so.0.1.2.3rc2)
        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/Y2KINFO b/Y2KINFO
index 24e990e..d45e906 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      April 27, 2002
+      May 1, 2002
 
       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.2.3rc1 are Y2K compliant.  It is my belief that earlier
+      upward through 1.2.3rc2 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
diff --git a/configure b/configure
index bdbe02e..5a0d097 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.2.3rc1.  Instead, please
+  There is no \"configure\" script for Libpng-1.2.3rc2.  Instead, please
   copy the appropriate makefile for your system from the \"scripts\"
   directory.  Read the INSTALL file for more details.
 "
diff --git a/libpng.3 b/libpng.3
index 1e5c1d5..415c92e 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "April 27, 2002"
+.TH LIBPNG 3 "May 1, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc1
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc2
 .SH SYNOPSIS
 \fI\fB
 
@@ -787,7 +787,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.3rc1 - April 27, 2002
+ libpng version 1.2.3rc2 - May 1, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -3638,13 +3638,13 @@
 
 .SH IX. Y2K Compliance in libpng
 
-April 27, 2002
+May 1, 2002
 
 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.2.3rc1 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.3rc2 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
@@ -3831,7 +3831,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.2.3rc1 - April 27, 2002:
+Libpng version 1.2.3rc2 - May 1, 2002:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3848,7 +3848,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.3rc1, April 27, 2002, are
+libpng versions 1.0.7, July 1, 2000, through 1.2.3rc2, May 1, 2002, are
 Copyright (c) 2000-2002 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
@@ -3940,7 +3940,7 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-April 27, 2002
+May 1, 2002
 
 .\" end of man page
 
diff --git a/libpng.txt b/libpng.txt
index 8197dc6..e2bef87 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.3rc1 - April 27, 2002
+ libpng version 1.2.3rc2 - May 1, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -2851,13 +2851,13 @@
 
 IX. Y2K Compliance in libpng
 
-April 27, 2002
+May 1, 2002
 
 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.2.3rc1 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.3rc2 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/libpngpf.3 b/libpngpf.3
index d6aaf1b..3e22c2a 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "April 27, 2002"
+.TH LIBPNGPF 3 "May 1, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc1
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.3rc2
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index 478357a..2379fca 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "April 27, 2002"
+.TH PNG 5 "May 1, 2002"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 104c4df..cfcc98d 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.2.3rc1 - April 27, 2002
+ * libpng version 1.2.3rc2 - May 1, 2002
  * Copyright (c) 1998-2002 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.)
@@ -13,14 +13,14 @@
 #include "png.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_3rc1 Your_png_h_is_not_version_1_2_3rc1;
+typedef version_1_2_3rc2 Your_png_h_is_not_version_1_2_3rc2;
 
 /* Version information for C files.  This had better match the version
  * string defined in png.h.  */
 
 #ifdef PNG_USE_GLOBAL_ARRAYS
 /* png_libpng_ver was changed to a function in version 1.0.5c */
-const char png_libpng_ver[18] = "1.2.3rc1";
+const char png_libpng_ver[18] = "1.2.3rc2";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -663,7 +663,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ((png_charp) "\n libpng version 1.2.3rc1 - April 27, 2002\n\
+   return ((png_charp) "\n libpng version 1.2.3rc2 - May 1, 2002\n\
    Copyright (c) 1998-2002 Glenn Randers-Pehrson\n\
    Copyright (c) 1996-1997 Andreas Dilger\n\
    Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
@@ -681,8 +681,8 @@
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return((png_charp) "1.2.3rc1");
-   return((png_charp) "1.2.3rc1");
+      return((png_charp) "1.2.3rc2");
+   return((png_charp) "1.2.3rc2");
 }
 
 png_charp PNGAPI
diff --git a/png.h b/png.h
index 702d3e9..25c1e2f 100644
--- a/png.h
+++ b/png.h
@@ -1,6 +1,6 @@
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.2.3rc1 - April 27, 2002
+ * libpng version 1.2.3rc2 - May 1, 2002
  * Copyright (c) 1998-2002 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.)
@@ -8,7 +8,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.2.3rc1 - April 27, 2002: Glenn
+ *  libpng versions 0.97, January 1998, through 1.2.3rc2 - May 1, 2002: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -116,7 +116,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.0.7, July 1, 2000, through 1.2.3rc1, April 27, 2002, are
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.3rc2, May 1, 2002, are
  * Copyright (c) 2000-2001 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
@@ -221,13 +221,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    April 27, 2002
+ *    May 1, 2002
  *
  *    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.2.3rc1 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.2.3rc2 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
@@ -283,7 +283,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.3rc1"
+#define PNG_LIBPNG_VER_STRING "1.2.3rc2"
 
 #define PNG_LIBPNG_VER_SONUM   0
 #define PNG_LIBPNG_VER_DLLNUM  %DLLNUM%
@@ -295,7 +295,7 @@
 /* This should match the numeric part of the final component of
  * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
 
-#define PNG_LIBPNG_VER_BUILD  1
+#define PNG_LIBPNG_VER_BUILD  2
 
 #define PNG_LIBPNG_BUILD_ALPHA    1
 #define PNG_LIBPNG_BUILD_BETA     2
@@ -1263,9 +1263,9 @@
 
 
 /* This prevents a compiler error in png.c if png.c and png.h are both at
-   version 1.2.3rc1
+   version 1.2.3rc2
  */
-typedef png_structp version_1_2_3rc1;
+typedef png_structp version_1_2_3rc2;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -1736,10 +1736,16 @@
 extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr,
    png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
 
+extern PNG_EXPORT(void,png_default_write_data) PNGARG((png_structp png_ptr,
+   png_bytep data, png_size_t length));
+
 /* Replace the default data input function with a user supplied one. */
 extern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr,
    png_voidp io_ptr, png_rw_ptr read_data_fn));
 
+extern PNG_EXPORT(void,png_default_read_data) PNGARG((png_structp png_ptr,
+   png_bytep data, png_size_t length));
+
 /* Return the user pointer associated with the I/O functions */
 extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr));
 
@@ -1817,6 +1823,13 @@
 /* frees a pointer allocated by png_malloc() */
 extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
 
+/* Function to allocate memory for zlib. */
+extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,
+   uInt size));
+
+/* Function to free memory for zlib */
+extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));
+
 /* Free data that was allocated internally */
 extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
    png_infop info_ptr, png_uint_32 free_me, int num));
@@ -2229,6 +2242,11 @@
    chunk_name));
 #endif
 
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+PNG_EXPORT(void,png_push_fill_buffer) PNGARG((png_structp png_ptr,
+   png_bytep buffer, png_size_t length));
+#endif
+
 /* Png_free_data() will turn off the "valid" flag for anything it frees.
    If you need to turn it off for a chunk that your application has freed,
    you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); */
@@ -2387,7 +2405,7 @@
 /* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.2.3rc1 - April 27, 2002 (header)\n"
+   " libpng version 1.2.3rc2 - May 1, 2002 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
@@ -2656,12 +2674,6 @@
 PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,
    png_infop info_ptr));
 
-/* Function to allocate memory for zlib. */
-PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size));
-
-/* Function to free memory for zlib */
-PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
-
 /* Reset the CRC variable */
 PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr));
 
@@ -2700,6 +2712,9 @@
 
 #if defined(PNG_WRITE_FLUSH_SUPPORTED)
 PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));
+#if !defined(PNG_NO_STDIO)
+PNG_EXTERN void png_default_flush PNGARG((png_structp png_ptr));
+#endif
 #endif
 
 /* Place a 32-bit number into a buffer in PNG byte order (big-endian).
@@ -3145,8 +3160,6 @@
 PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr,
    png_uint_32 length));
 PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr));
-PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr,
-   png_bytep buffer, png_size_t length));
 PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr));
 PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr,
    png_bytep buffer, png_size_t buffer_length));
diff --git a/pngasmrd.h b/pngasmrd.h
index 3d5eb51..a71b973 100644
--- a/pngasmrd.h
+++ b/pngasmrd.h
@@ -1,6 +1,6 @@
 /* pngasmrd.h - assembler version of utilities to read a PNG file
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 2002 Glenn Randers-Pehrson
  *
diff --git a/pngconf.h b/pngconf.h
index 2676fd3..98ce2c3 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1163,6 +1163,13 @@
 #  define PNG_IMPEXP
 #endif  
 
+/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
+ * you may get warnings regarding the linkage of png_zalloc and png_zfree.
+ * Don't ignore those warnings; you must also reset the default calling
+ * convention in your compiler to match your PNGAPI, and you must build
+ * zlib and your applications the same way you build libpng.
+ */
+
 #ifndef PNGAPI
 
 #if defined(__MINGW32__) && !defined(PNG_MODULEDEF)
diff --git a/pngerror.c b/pngerror.c
index 8ab091f..bcdf0d7 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pnggccrd.c b/pnggccrd.c
index 993a387..178e698 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -6,7 +6,7 @@
  *     and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
  *     for Intel's performance analysis of the MMX vs. non-MMX code.
  *
- * libpng version 1.2.3rc1 - April 27, 2002
+ * libpng version 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngget.c b/pngget.c
index 79792af..1eb3cd2 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -560,7 +560,9 @@
          *interlace_type = info_ptr->interlace_type;
 
       /* check for potential overflow of rowbytes */
-      if (*color_type & PNG_COLOR_MASK_COLOR)
+      if (*color_type == PNG_COLOR_TYPE_PALETTE)
+         channels = 1;
+      else if (*color_type & PNG_COLOR_MASK_COLOR)
          channels = 3;
       else
          channels = 1;
diff --git a/pngmem.c b/pngmem.c
index 540e9eb..cf2c93d 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpread.c b/pngpread.c
index 2607c75..53838f3 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -524,7 +524,7 @@
    }
 }
 
-void /* PRIVATE */
+void PNGAPI
 png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
 {
    png_bytep ptr;
@@ -1497,7 +1497,7 @@
    png_ptr->row_fn = row_fn;
    png_ptr->end_fn = end_fn;
 
-   png_set_read_fn(png_ptr, progressive_ptr, (png_rw_ptr)png_push_fill_buffer);
+   png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer);
 }
 
 png_voidp PNGAPI
diff --git a/pngread.c b/pngread.c
index b9c6a35..007ca2e 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -795,7 +795,7 @@
  * not called png_set_interlace_handling(), the display_row buffer will
  * be ignored, so pass NULL to it.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.3rc1
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.3rc2
  */
 
 void PNGAPI
@@ -844,7 +844,7 @@
  * only call this function once.  If you desire to have an image for
  * each pass of a interlaced image, use png_read_rows() instead.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.3rc1
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.3rc2
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index a0d4e52..6930a68 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -39,7 +39,7 @@
    read_data function and use it at run time with png_set_read_fn(), rather
    than changing the library. */
 #ifndef USE_FAR_KEYWORD
-static void /* PRIVATE */
+void PNGAPI
 png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
    png_size_t check;
@@ -140,7 +140,7 @@
    if (read_data_fn != NULL)
       png_ptr->read_data_fn = read_data_fn;
    else
-      png_ptr->read_data_fn = (png_rw_ptr)png_default_read_data;
+      png_ptr->read_data_fn = png_default_read_data;
 #else
    png_ptr->read_data_fn = read_data_fn;
 #endif
diff --git a/pngrtran.c b/pngrtran.c
index f343134..0eae7eb 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index 1d65ac9..1213b8e 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngset.c b/pngset.c
index 453ff57..4d8a9fa 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -305,7 +305,9 @@
    info_ptr->compression_type = (png_byte)compression_type;
    info_ptr->filter_type = (png_byte)filter_type;
    info_ptr->interlace_type = (png_byte)interlace_type;
-   if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
+   if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
+      info_ptr->channels = 1;
+   else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
       info_ptr->channels = 3;
    else
       info_ptr->channels = 1;
diff --git a/pngtest.c b/pngtest.c
index 83be28e..8259af4 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1512,4 +1512,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_3rc1 your_png_h_is_not_version_1_2_3rc1;
+typedef version_1_2_3rc2 your_png_h_is_not_version_1_2_3rc2;
diff --git a/pngtrans.c b/pngtrans.c
index c6bb0b7..1e0efda 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,7 +1,7 @@
 
 /* pngtrans.c - transforms the data in a row (used by both readers and writers)
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngvcrd.c b/pngvcrd.c
index 5990bf4..2eb05e0 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng version 1.2.3rc1 - April 27, 2002
+ * libpng version 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngwio.c b/pngwio.c
index 7818251..67e2bd8 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -40,7 +40,7 @@
    write_data function and use it at run time with png_set_write_fn(), rather
    than changing the library. */
 #ifndef USE_FAR_KEYWORD
-static void /* PRIVATE */
+void PNGAPI
 png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
    png_uint_32 check;
@@ -63,7 +63,7 @@
 #define NEAR_BUF_SIZE 1024
 #define MIN(a,b) (a <= b ? a : b)
 
-static void /* PRIVATE */
+void PNGAPI
 png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
    png_uint_32 check;
@@ -126,7 +126,7 @@
 }
 
 #if !defined(PNG_NO_STDIO)
-static void /* PRIVATE */
+void PNGAPI
 png_default_flush(png_structp png_ptr)
 {
 #if !defined(_WIN32_WCE)
@@ -171,7 +171,7 @@
    if (write_data_fn != NULL)
       png_ptr->write_data_fn = write_data_fn;
    else
-      png_ptr->write_data_fn = (png_rw_ptr)png_default_write_data;
+      png_ptr->write_data_fn = png_default_write_data;
 #else
    png_ptr->write_data_fn = write_data_fn;
 #endif
@@ -181,7 +181,7 @@
    if (output_flush_fn != NULL)
       png_ptr->output_flush_fn = output_flush_fn;
    else
-      png_ptr->output_flush_fn = (png_flush_ptr)png_default_flush;
+      png_ptr->output_flush_fn = png_default_flush;
 #else
    png_ptr->output_flush_fn = output_flush_fn;
 #endif
diff --git a/pngwrite.c b/pngwrite.c
index c1bd41c..bc84871 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwtran.c b/pngwtran.c
index 2462c41..b64047e 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index 5688b9f..5edf7aa 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.2.3rc1 - April 27, 2002
+ * libpng 1.2.3rc2 - May 1, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/projects/msvc/README.txt b/projects/msvc/README.txt
index 3c5eee8..689309b 100644
--- a/projects/msvc/README.txt
+++ b/projects/msvc/README.txt
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Build File, Format Version 6.00 for
-libpng 1.2.3rc1 (April 27, 2002) and zlib
+libpng 1.2.3rc2 (May 1, 2002) and zlib
 
 Copyright (C) 2000 Simon-Pierre Cadieux
 For conditions of distribution and use, see copyright notice in png.h
diff --git a/projects/msvc/png32ms.def b/projects/msvc/png32ms.def
index 8eb9636..1d784da 100644
--- a/projects/msvc/png32ms.def
+++ b/projects/msvc/png32ms.def
@@ -6,7 +6,7 @@
 DESCRIPTION "PNG image compression library for Windows"
 
 EXPORTS
-;Version 1.2.3rc1
+;Version 1.2.3rc2
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
@@ -213,6 +213,10 @@
   png_set_strip_error_numbers @193
 ; Added at version 1.2.2
   png_handle_as_unknown @194
-; Added at version 1.2.2 and deleted from version 1.2.3
-; png_zalloc @195
-; png_zfree @196
+  png_zalloc @195
+  png_zfree @196
+; Added at version 1.2.3
+  png_default_read @197
+  png_default_write @198
+  png_default_flush @199
+  png_push_fill_buffer @200
diff --git a/projects/netware.txt b/projects/netware.txt
index 4663dcd..0a6bb4a 100644
--- a/projects/netware.txt
+++ b/projects/netware.txt
@@ -1,6 +1,6 @@
 A set of project files is available for Netware.  Get
-libpng-1.2.3rc1-project-netware.zip from a libpng distribution
+libpng-1.2.3rc2-project-netware.zip from a libpng distribution
 site such as http://libpng.sourceforge.net
 
 Put the zip file in this directory (projects) and then run
-"unzip -a libpng-1.2.3rc1-project-netware.zip"
+"unzip -a libpng-1.2.3rc2-project-netware.zip"
diff --git a/projects/wince.txt b/projects/wince.txt
index ef04fab..9ad27f6 100644
--- a/projects/wince.txt
+++ b/projects/wince.txt
@@ -1,6 +1,6 @@
 A set of project files is available for WinCE.  Get
-libpng-1.2.3rc1-project-wince.zip from a libpng distribution
+libpng-1.2.3rc2-project-wince.zip from a libpng distribution
 site such as http://libpng.sourceforge.net
 
 Put the zip file in this directory (projects) and then run
-"unzip -a libpng-1.2.3rc1-project-wince.zip"
+"unzip -a libpng-1.2.3rc2-project-wince.zip"
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 3fdffc4..ab67d45 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -6,6 +6,6 @@
 
 Name: libpng12
 Description: Loads and saves PNG files
-Version: 1.2.3rc1
+Version: 1.2.3rc2
 Libs: -L${libdir} -lpng12
 Cflags: -I${includedir}/libpng12
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index 817c8e4..e86a8dc 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -33,7 +33,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
@@ -117,7 +117,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -f -s $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index 3c0a0a6..42288a0 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -33,7 +33,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
@@ -117,7 +117,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -f -s $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index b79bab6..58ca155 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -19,7 +19,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 4fc6d59..594be28 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -14,7 +14,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 ALIGN=
@@ -106,7 +106,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index a25c554..a52329e 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -52,7 +52,7 @@
 LIBNAME=libpng12
 PNGMAJ = 0
 PNGDLL = 12
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 SHAREDLIB=cygpng$(PNGDLL).dll
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index 936d467..b15eafa 100644
--- a/scripts/makefile.darwin
+++ b/scripts/makefile.darwin
@@ -25,7 +25,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -98,7 +98,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).dylib
+install-shared: install-headers $(LIBNAME).dylib libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).$(PNGMAJ)*.dylib
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).dylib
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index fb80cd1..cc19e9a 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -28,7 +28,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -85,7 +85,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index a9b376b..963a43a 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -15,7 +15,7 @@
 
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=gcc
@@ -144,7 +144,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index a504005..0ec23cd 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -35,7 +35,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -109,7 +109,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).sl.$(PNGVER)
+install-shared: install-headers $(LIBNAME).sl.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).sl.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).sl
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index f31692d..0b0534b 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -19,7 +19,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -94,7 +94,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).sl.$(PNGVER)
+install-shared: install-headers $(LIBNAME).sl.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).sl.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).sl
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 633d00c..8480888 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -5,7 +5,7 @@
 
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=gcc
@@ -118,7 +118,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -sf $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.macosx b/scripts/makefile.macosx
index d32a221..8bd87d2 100644
--- a/scripts/makefile.macosx
+++ b/scripts/makefile.macosx
@@ -17,7 +17,7 @@
 CC=cc
 
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CFLAGS=-fno-common -I$(ZLIBINC) -O # -g -DPNG_DEBUG=5
@@ -88,7 +88,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -f -s $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX)
+install-shared: install-headers $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).$(PNGMAJ)*.$(SHAREDLIB_POSTFIX)
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index b8ad349..f901d46 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -13,7 +13,7 @@
 
 LIB=	png12
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.2.3rc1
+SHLIB_MINOR=	1.2.3rc2
 SRCS=	pnggccrd.c 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 fc1c6e4..be41cd7 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -13,7 +13,7 @@
 
 LIB=	png
 SHLIB_MAJOR=	3
-SHLIB_MINOR=	1.2.3rc1
+SHLIB_MINOR=	1.2.3rc2
 SRCS=	pnggccrd.c 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 852a198..ddfb415 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -7,7 +7,7 @@
 MANDIR= ${PREFIX}/man/cat
 
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.2.3rc1
+SHLIB_MINOR=	1.2.3rc2
 
 LIB=	png
 SRCS=	png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index bc01201..d1e971b 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -26,7 +26,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -102,7 +102,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -f -s $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 94d4f3f..b427b6c 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -36,7 +36,7 @@
 LDSHARED=CC $(ABI) -shared
 
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 # See "man dso" for info about shared objects
 LIBS=libpng12.so.$(PNGVER)
@@ -103,7 +103,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -f -s $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index 1c5c815..1801e77 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -31,7 +31,7 @@
 # See "man dso" for info about shared objects
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 RANLIB=echo
@@ -98,7 +98,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -f -s $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index 69f8335..bef6988 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -36,7 +36,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -121,7 +121,7 @@
 	(cd $(DESTDIR)$(INCPATH); ln -f -s $(LIBNAME) libpng; \
 	ln -f -s $(LIBNAME)/* .)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index a701078..9ed0876 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -32,7 +32,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 0.  You should not
 # have to change it.
 PNGMAJ = 0
-PNGMIN = 1.2.3rc1
+PNGMIN = 1.2.3rc2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -117,7 +117,7 @@
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/libpng.a
 	(cd $(DESTDIR)$(LIBPATH); ln -f -s $(LIBNAME).a libpng.a)
 
-install-shared: install-headers $(LIBNAME).so.$(PNGVER)
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc
 	-@if [ ! -d $(DESTDIR)$(LIBPATH) ]; then mkdir $(DESTDIR)$(LIBPATH); fi
 	-@/bin/rm -f $(DESTDIR)$(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* \
 	$(DESTDIR)$(LIBPATH)/$(LIBNAME).so
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index 72ba08f..d86b2af 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -7,7 +7,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.2.3rc1';
+  PNG_LIBPNG_VER_STRING = '1.2.3rc2';
   PNG_LIBPNG_VER        =  10203;
 
 type
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 6f8a923..3ce9bfa 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
 ; PNG.LIB module definition file for OS/2
 ;----------------------------------------
 
-; Version 1.2.3rc1
+; Version 1.2.3rc2
 
 LIBRARY		PNG
 DESCRIPTION	"PNG image compression library for OS/2"
@@ -198,6 +198,14 @@
 
 ; Added at version 1.2.2:
   png_handle_as_unknown
+  png_zalloc
+  png_zfree
+
+; Added at version 1.2.3
+  png_default_read
+  png_default_write
+  png_default_flush
+  png_push_fill_buffer
 
 ; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
   png_libpng_ver