Imported from libpng-1.2.2beta5.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index 212931d..be93ee4 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.2.2beta4 - March 8, 2002
+Libpng 1.2.2beta5 - March 26, 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.
@@ -8,8 +8,8 @@
 
 version 1.2.2beta1 [February 22, 2002]
   Fixed a bug with reading the length of iCCP profiles (Larry Reeves).
-  Revised makefile.linux, makefile.gcmmx, and makefile.sgi to generate
-    libpng.a, libpng12.so (not libpng.so.3), and libpng12/png.h
+  Revised makefile.linux, makefile.gcmmx, and others to generate
+    libpng.a, libpngNN.so (not libpng.so.3), and libpngNN/png.h
   Revised makefile.darwin to remove "-undefined suppress" option.
   Added checks for gamma and chromaticity values over 21474.83, which exceed
     the limit for PNG unsigned 32-bit integers when encoded.
@@ -32,9 +32,18 @@
   Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
 version 1.2.2beta4 [March 8, 2002]
   Compute background.gray and background_1.gray even when color_type is RGB
-    in case image gets reduced to gray later.
+    in case image gets reduced to gray later (Jason Summers).
   Relocated a misplaced /bin/rm in the "install-shared" makefile targets
   Added PNG_1_0_X macro which can be used to build a 1.0.x-compatible library.
+version 1.2.2beta5 [March 26, 2002]
+  Added missing PNGAPI to several function definitions.
+  Check for invalid bit_depth or color_type in png_get_IHDR(), and
+    check for missing PLTE or IHDR in png_push_read_chunk() (Matthias Clasen).
+  Revised iTXt support to accept NULL for lang and lang_key.
+  Compute gamma for color components of background even when color_type is gray.
+  Changed "()" to "{}" in pkgconfig/libpngNN.pc.
+  Revised makefiles to put png.h and pngconf.h only in $prefix/include/libpngNN
+  Revised makefiles to make symlink to libpng.so.NN in addition to libpngNN.so
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index 54a046d..3baa2e1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1042,9 +1042,18 @@
   Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
 version 1.2.2beta4 [March 8, 2002]
   Compute background.gray and background_1.gray even when color_type is RGB
-    in case image gets reduced to gray later.
+    in case image gets reduced to gray later (Jason Summers).
   Relocated a misplaced /bin/rm in the "install-shared" makefile targets
   Added PNG_1_0_X macro which can be used to build a 1.0.x-compatible library.
+version 1.2.2beta5 [March 26, 2002]
+  Added missing PNGAPI to several function definitions.
+  Check for invalid bit_depth or color_type in png_get_IHDR(), and
+    check for missing PLTE or IHDR in png_push_read_chunk() (Matthias Clasen).
+  Revised iTXt support to accept NULL for lang and lang_key.
+  Compute gamma for color components of background even when color_type is gray.
+  Changed "()" to "{}" in scripts/libpng.pc.in.
+  Revised makefiles to put png.h and pngconf.h only in $prefix/include/libpngNN
+  Revised makefiles to make symlink to libpng.so.NN in addition to libpngNN.so
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index 3f14f1a..400f95d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.2.2beta4 - March 8, 2002
+Installing libpng version 1.2.2beta5 - March 26, 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.2beta4" or "lpng109" and "zlib-1.1.3"
+might be called "libpng-1.2.2beta5" 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.2beta4)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.2beta4,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.2beta5)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.2beta5,
                        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
@@ -84,10 +84,10 @@
  makefile.netbsd   =>  NetBSD/cc makefile, uses PNGGCCRD
  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.2beta4)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.2beta5)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.2beta4)
- makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.2beta4)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.2beta5)
+ makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.2beta5)
  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 bce33b9..895fe0d 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
 
-Known bugs in libpng version 1.2.2beta4
+Known bugs in libpng version 1.2.2beta5
 
 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
    reading interlaced PNG files, when assembler code is enabled.
diff --git a/LICENSE b/LICENSE
index fcad57f..b7dced3 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,8 +8,8 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.2beta4, March 8, 2002, are
-Copyright (c) 2000 Glenn Randers-Pehrson
+libpng versions 1.0.7, July 1, 2000, through 1.2.2beta5, March 26, 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
-March 8, 2002
+March 26, 2002
diff --git a/README b/README
index b996ebb..897045b 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.2.2beta4 - March 8, 2002 (shared library 2.1)
+README for libpng 1.2.2beta5 - March 26, 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.2beta4)
+                            (gcc, creates libpng12.so.0.1.2.2beta5)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng12.so.0.1.2.2beta4, uses assembler code
+                            libpng12.so.0.1.2.2beta5, 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
@@ -208,12 +208,12 @@
        makefile.netbsd  =>  NetBSD/cc makefile, uses PNGGCCRD
        makefile.openbsd =>  OpenBSD makefile
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.2beta4)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.2beta5)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng12.so.0.1.2.2beta4)
+                            (gcc, creates libpng12.so.0.1.2.2beta5)
        makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng12.so.0.1.2.2beta4)
+                            (gcc, creates libpng12.so.0.1.2.2beta5)
        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 1f0b868..ed56582 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      March 8, 2002
+      March 26, 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.2beta4 are Y2K compliant.  It is my belief that earlier
+      upward through 1.2.2beta5 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 66d1d20..79c7718 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.2.2beta4.  Instead, please
+  There is no \"configure\" script for Libpng-1.2.2beta5.  Instead, please
   copy the appropriate makefile for your system from the \"scripts\"
   directory.  Read the INSTALL file for more details.
 "
diff --git a/contrib/pngsuite/README b/contrib/pngsuite/README
deleted file mode 100644
index 714d12c..0000000
--- a/contrib/pngsuite/README
+++ /dev/null
@@ -1,85 +0,0 @@
-
-pngsuite
---------
-(c) Willem van Schaik, 1999
-
-Permission to use, copy, and distribute these images for any purpose and
-without fee is hereby granted.
-
-These 15 images are part of the much larger PngSuite test-set of 
-images, available for developers of PNG supporting software. The 
-complete set, available at http:/www.schaik.com/pngsuite/, contains 
-a variety of images to test interlacing, gamma settings, ancillary
-chunks, etc.
-
-The images in this directory represent the basic PNG color-types:
-grayscale (1-16 bit deep), full color (8 or 16 bit), paletted
-(1-8 bit) and grayscale or color images with alpha channel. You
-can use them to test the proper functioning of PNG software.
-
-    filename      depth type
-    ------------ ------ --------------
-    basn0g01.png  1-bit grayscale
-    basn0g02.png  2-bit grayscale
-    basn0g04.png  4-bit grayscale
-    basn0g08.png  8-bit grayscale
-    basn0g16.png 16-bit grayscale
-    basn2c08.png  8-bit truecolor
-    basn2c16.png 16-bit truecolor
-    basn3p01.png  1-bit paletted
-    basn3p02.png  2-bit paletted
-    basn3p04.png  4-bit paletted
-    basn3p08.png  8-bit paletted
-    basn4a08.png  8-bit gray with alpha
-    basn4a16.png 16-bit gray with alpha
-    basn6a08.png  8-bit RGBA
-    basn6a16.png 16-bit RGBA
-
-Here is the correct result of typing "pngtest -m *.png" in
-this directory:
-
-Testing basn0g01.png: PASS (524 zero samples)
- Filter 0 was used 32 times
-Testing basn0g02.png: PASS (448 zero samples)
- Filter 0 was used 32 times
-Testing basn0g04.png: PASS (520 zero samples)
- Filter 0 was used 32 times
-Testing basn0g08.png: PASS (3 zero samples)
- Filter 1 was used 9 times
- Filter 4 was used 23 times
-Testing basn0g16.png: PASS (1 zero samples)
- Filter 1 was used 1 times
- Filter 2 was used 31 times
-Testing basn2c08.png: PASS (6 zero samples)
- Filter 1 was used 5 times
- Filter 4 was used 27 times
-Testing basn2c16.png: PASS (592 zero samples)
- Filter 1 was used 1 times
- Filter 4 was used 31 times
-Testing basn3p01.png: PASS (512 zero samples)
- Filter 0 was used 32 times
-Testing basn3p02.png: PASS (448 zero samples)
- Filter 0 was used 32 times
-Testing basn3p04.png: PASS (544 zero samples)
- Filter 0 was used 32 times
-Testing basn3p08.png: PASS (4 zero samples)
- Filter 0 was used 32 times
-Testing basn4a08.png: PASS (32 zero samples)
- Filter 1 was used 1 times
- Filter 4 was used 31 times
-Testing basn4a16.png: PASS (64 zero samples)
- Filter 0 was used 1 times
- Filter 1 was used 2 times
- Filter 2 was used 1 times
- Filter 4 was used 28 times
-Testing basn6a08.png: PASS (160 zero samples)
- Filter 1 was used 1 times
- Filter 4 was used 31 times
-Testing basn6a16.png: PASS (1072 zero samples)
- Filter 1 was used 4 times
- Filter 4 was used 28 times
-libpng passes test
-
-Willem van Schaik
-<willem@schaik.com>
-October 1999
diff --git a/libpng.3 b/libpng.3
index 154fddb..75dd999 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "March 8, 2002"
+.TH LIBPNG 3 "March 26, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.2beta4
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.2beta5
 .SH SYNOPSIS
 \fI\fB
 
@@ -795,7 +795,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.2beta4 - March 8, 2002
+ libpng version 1.2.2beta5 - March 26, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -1372,7 +1372,7 @@
                  after decompression, 0 for tEXt/zTXt
     text_ptr[i].lang  - language of comment (empty
                          string for unknown).
-    text_ptr[i].translated_keyword  - keyword in UTF-8
+    text_ptr[i].lang_key  - keyword in UTF-8
                          (empty string for unknown).
     num_text       - number of comments (same as
                      num_comments; you can put NULL here
@@ -1680,8 +1680,8 @@
 The calculation is done in a linear colorspace, if the image gamma
 is known.
 
-If you have a grayscale and you are using png_set_expand_depth() or
-png_set_expand() to change to
+If you have a grayscale and you are using png_set_expand_depth(),
+png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
 a higher bit-depth, you must either supply the background color as a gray
 value at the original file bit-depth (need_expand = 1) or else supply the
 background color as an RGB triplet at the final, expanded bit depth
@@ -3643,13 +3643,13 @@
 
 .SH IX. Y2K Compliance in libpng
 
-March 8, 2002
+March 26, 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.2beta4 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.2beta5 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
@@ -3830,7 +3830,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.2.2beta4 - March 8, 2002:
+Libpng version 1.2.2beta5 - March 26, 2002:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3847,7 +3847,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.2beta4, March 8, 2002, are
+libpng versions 1.0.7, July 1, 2000, through 1.2.2beta5, March 26, 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
@@ -3939,7 +3939,7 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-March 8, 2002
+March 26, 2002
 
 .\" end of man page
 
diff --git a/libpng.txt b/libpng.txt
index 5fbe46e..915053e 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.2beta4 - March 8, 2002
+ libpng version 1.2.2beta5 - March 26, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -577,7 +577,7 @@
                  after decompression, 0 for tEXt/zTXt
     text_ptr[i].lang  - language of comment (empty
                          string for unknown).
-    text_ptr[i].translated_keyword  - keyword in UTF-8
+    text_ptr[i].lang_key  - keyword in UTF-8
                          (empty string for unknown).
     num_text       - number of comments (same as
                      num_comments; you can put NULL here
@@ -885,8 +885,8 @@
 The calculation is done in a linear colorspace, if the image gamma
 is known.
 
-If you have a grayscale and you are using png_set_expand_depth() or
-png_set_expand() to change to
+If you have a grayscale and you are using png_set_expand_depth(),
+png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
 a higher bit-depth, you must either supply the background color as a gray
 value at the original file bit-depth (need_expand = 1) or else supply the
 background color as an RGB triplet at the final, expanded bit depth
@@ -2848,13 +2848,13 @@
 
 IX. Y2K Compliance in libpng
 
-March 8, 2002
+March 26, 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.2beta4 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.2beta5 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 a0afd44..5afd81c 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "March 8, 2002"
+.TH LIBPNGPF 3 "March 26, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.2beta4
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.2beta5
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index d7f3985..a9a9e02 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "March 8, 2002"
+.TH PNG 5 "March 26, 2002"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 0307bfc..388452a 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.2.2beta4 - March 8, 2002
+ * libpng version 1.2.2beta5 - March 26, 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_2beta4 Your_png_h_is_not_version_1_2_2beta4;
+typedef version_1_2_2beta5 Your_png_h_is_not_version_1_2_2beta5;
 
 /* 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.2beta4";
+const char png_libpng_ver[18] = "1.2.2beta5";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -660,10 +660,10 @@
 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.2beta4 - March 8, 2002\n\
+   return ((png_charp) "\n libpng version 1.2.2beta5 - March 26, 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");
+   Copyright (c) 1996-1997 Andreas Dilger\n\
+   Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
    return ((png_charp) "");
 }
 
@@ -678,8 +678,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.2beta4");
-   return((png_charp) "1.2.2beta4");
+      return((png_charp) "1.2.2beta5");
+   return((png_charp) "1.2.2beta5");
 }
 
 png_charp PNGAPI
@@ -733,13 +733,13 @@
 }
 
 
+#if !defined(PNG_1_0_X)
 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
     /* GRR:  could add this:   && defined(PNG_MMX_CODE_SUPPORTED) */
 /* this INTERNAL function was added to libpng 1.2.0 */
 void /* PRIVATE */
 png_init_mmx_flags (png_structp png_ptr)
 {
-#if !defined(PNG_1_0_X)
     png_ptr->mmx_rowbytes_threshold = 0;
     png_ptr->mmx_bitdepth_threshold = 0;
 
@@ -778,7 +778,6 @@
     png_ptr->asm_flags &= ~( PNG_MMX_FLAGS );
 
 #  endif /* ?(PNGVCRD || PNGGCCRD) */
-#endif /* PNG_1_0_X */
 }
 
 #endif /* !(PNG_ASSEMBLER_CODE_SUPPORTED) */
@@ -792,3 +791,4 @@
     return -1;
 }
 #endif
+#endif /* PNG_1_0_X */
diff --git a/png.h b/png.h
index 3057fbd..8c5e555 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.2.2beta4 - March 8, 2002
+ * libpng version 1.2.2beta5 - March 26, 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.)
@@ -9,7 +9,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.2beta4 - March 8, 2002: Glenn
+ *  libpng versions 0.97, January 1998, through 1.2.2beta5 - March 26, 2002: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -111,8 +111,8 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.0.7, July 1, 2000, through  1.2.2beta4, March 8, 2002, are
- * Copyright (c) 2000, 2002 Glenn Randers-Pehrson, and are
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.2beta5, March 26, 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
  *
@@ -216,13 +216,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    March 8, 2002
+ *    March 26, 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.2beta4 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.2.2beta5 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
@@ -278,7 +278,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.2beta4"
+#define PNG_LIBPNG_VER_STRING "1.2.2beta5"
 
 #define PNG_LIBPNG_VER_SONUM   0
 #define PNG_LIBPNG_VER_DLLNUM  %DLLNUM%
@@ -290,7 +290,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  4
+#define PNG_LIBPNG_VER_BUILD  5
 
 #define PNG_LIBPNG_BUILD_ALPHA    1
 #define PNG_LIBPNG_BUILD_BETA     2
@@ -1257,10 +1257,10 @@
 };
 
 
-/* This prevents a compiler error in png_get_copyright() in png.c if png.c
-   and png.h are both at version 1.2.2beta4
+/* This prevents a compiler error in png.c if png.c and png.h are both at
+   version 1.2.2beta5
  */
-typedef png_structp version_1_2_2beta4;
+typedef png_structp version_1_2_2beta5;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2374,6 +2374,7 @@
 #endif /* PNG_1_0_X */
 #endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
 
+#if !defined(PNG_1_0_X)
 /* png.c, pnggccrd.c, or pngvcrd.c */
 extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
 
@@ -2383,11 +2384,12 @@
 extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
    png_ptr, png_uint_32 strip_mode));
 #endif
+#endif /* PNG_1_0_X */
 
 /* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.2.2beta4 - March 8, 2002 (header)\n"
+   " libpng version 1.2.2beta5 - March 26, 2002 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
diff --git a/pngasmrd.h b/pngasmrd.h
index cf5b960..dc52a69 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.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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 3ef9543..3f634d8 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -591,9 +591,11 @@
 #  define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
 #endif
 
+#ifndef PNG_1_0_X
 #ifndef PNG_NO_ERROR_NUMBERS
 #define PNG_ERROR_NUMBERS_SUPPORTED
 #endif
+#endif /* PNG_1_0_X */
 
 #ifndef PNG_NO_WRITE_FLUSH
 #  define PNG_WRITE_FLUSH_SUPPORTED
diff --git a/pngerror.c b/pngerror.c
index 2b7d262..8d86508 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -277,7 +277,7 @@
 
 
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
-void
+void PNGAPI
 png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode)
 {
    if(png_ptr != NULL)
diff --git a/pnggccrd.c b/pnggccrd.c
index ab58b57..93bab96 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.2beta4 - March 8, 2002
+ * libpng version 1.2.2beta5 - March 26, 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 6064898..85341cb 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -547,7 +547,11 @@
       *width = info_ptr->width;
       *height = info_ptr->height;
       *bit_depth = info_ptr->bit_depth;
+      if (info_ptr->bit_depth < 1 || info_ptr->bit_depth > 16)
+        png_error(png_ptr, "Invalid bit depth");
       *color_type = info_ptr->color_type;
+      if (info_ptr->color_type > 6)
+        png_error(png_ptr, "Invalid color type");
       if (compression_type != NULL)
          *compression_type = info_ptr->compression_type;
       if (filter_type != NULL)
@@ -556,9 +560,7 @@
          *interlace_type = info_ptr->interlace_type;
 
       /* check for potential overflow of rowbytes */
-      if (*color_type == PNG_COLOR_TYPE_PALETTE)
-         channels = 1;
-      else if (*color_type & PNG_COLOR_MASK_COLOR)
+      if (*color_type & PNG_COLOR_MASK_COLOR)
          channels = 3;
       else
          channels = 1;
diff --git a/pngmem.c b/pngmem.c
index d76acc8..237e964 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -43,7 +43,7 @@
    else if (type == PNG_STRUCT_PNG)
      size = sizeof(png_struct);
    else
-     return (NULL);
+     return (png_get_copyright());
 
 #ifdef PNG_USER_MEM_SUPPORTED
    if(malloc_fn != NULL)
@@ -424,7 +424,7 @@
    else
        return (png_malloc_default(png_ptr, size));
 }
-png_voidp /* PRIVATE */
+png_voidp PNGAPI
 png_malloc_default(png_structp png_ptr, png_uint_32 size)
 {
    png_voidp ret;
@@ -472,7 +472,7 @@
    }
    else png_free_default(png_ptr, ptr);
 }
-void /* PRIVATE */
+void PNGAPI
 png_free_default(png_structp png_ptr, png_voidp ptr)
 {
    if (png_ptr == NULL || ptr == NULL)
@@ -493,7 +493,7 @@
 
 #endif /* Not Borland DOS special memory handler */
 
-png_voidp /* PRIVATE */
+png_voidp PNGAPI
 png_memcpy_check (png_structp png_ptr, png_voidp s1, png_voidp s2,
    png_uint_32 length)
 {
@@ -506,7 +506,7 @@
    return(png_memcpy (s1, s2, size));
 }
 
-png_voidp /* PRIVATE */
+png_voidp PNGAPI
 png_memset_check (png_structp png_ptr, png_voidp s1, int value,
    png_uint_32 length)
 {
diff --git a/pngpread.c b/pngpread.c
index 063c58b..c538337 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -240,6 +240,12 @@
        * header chunks, and we can start reading the image (or if this
        * is called after the image has been read - we have an error).
        */
+     if (!(png_ptr->mode & PNG_HAVE_IHDR))
+       png_error(png_ptr, "Missing IHDR before IDAT");
+     else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
+	      !(png_ptr->mode & PNG_HAVE_PLTE))
+       png_error(png_ptr, "Missing PLTE before IDAT");
+
       if (png_ptr->mode & PNG_HAVE_IDAT)
       {
          if (png_ptr->push_length == 0)
@@ -1491,7 +1497,7 @@
    png_ptr->row_fn = row_fn;
    png_ptr->end_fn = end_fn;
 
-   png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer);
+   png_set_read_fn(png_ptr, progressive_ptr, (png_rw_ptr)png_push_fill_buffer);
 }
 
 png_voidp PNGAPI
diff --git a/pngread.c b/pngread.c
index ef7ff17..2800847 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -53,9 +53,11 @@
    if (png_ptr == NULL)
       return (NULL);
 
+#if !defined(PNG_1_0_X)
 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
    png_init_mmx_flags(png_ptr);   /* 1.2.0 addition */
 #endif
+#endif /* PNG_1_0_X */
 
 #ifdef PNG_SETJMP_SUPPORTED
 #ifdef USE_FAR_KEYWORD
@@ -774,7 +776,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.2beta4
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.2beta5
  */
 
 void PNGAPI
@@ -823,7 +825,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.2beta4
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.2beta5
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index 77ec825..0c831f9 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -140,7 +140,7 @@
    if (read_data_fn != NULL)
       png_ptr->read_data_fn = read_data_fn;
    else
-      png_ptr->read_data_fn = png_default_read_data;
+      png_ptr->read_data_fn = (png_rw_ptr)png_default_read_data;
 #else
    png_ptr->read_data_fn = read_data_fn;
 #endif
diff --git a/pngrtran.c b/pngrtran.c
index 136f8d6..abc132f 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.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -698,23 +698,23 @@
          {
             case 1:
                png_ptr->background.gray *= (png_uint_16)0xff;
-               png_ptr->background.red = png_ptr->background.green =
-               png_ptr->background.blue = png_ptr->background.gray;
+               png_ptr->background.red = png_ptr->background.green
+                 =  png_ptr->background.blue = png_ptr->background.gray;
                break;
             case 2:
                png_ptr->background.gray *= (png_uint_16)0x55;
-               png_ptr->background.red = png_ptr->background.green =
-               png_ptr->background.blue = png_ptr->background.gray;
+               png_ptr->background.red = png_ptr->background.green
+                 = png_ptr->background.blue = png_ptr->background.gray;
                break;
             case 4:
                png_ptr->background.gray *= (png_uint_16)0x11;
-               png_ptr->background.red = png_ptr->background.green =
-               png_ptr->background.blue = png_ptr->background.gray;
+               png_ptr->background.red = png_ptr->background.green
+                 = png_ptr->background.blue = png_ptr->background.gray;
                break;
             case 8:
             case 16:
-               png_ptr->background.red = png_ptr->background.green =
-               png_ptr->background.blue = png_ptr->background.gray;
+               png_ptr->background.red = png_ptr->background.green
+                 = png_ptr->background.blue = png_ptr->background.gray;
                break;
          }
       }
@@ -902,9 +902,11 @@
             png_ptr->background.gray = (png_uint_16)(pow(
                (double)png_ptr->background.gray / m, gs) * m + .5);
 
-            if (color_type & PNG_COLOR_MASK_COLOR)
+            if ((png_ptr->background.red != png_ptr->background.green) ||
+                (png_ptr->background.red != png_ptr->background.blue) ||
+                (png_ptr->background.red != png_ptr->background.gray))
             {
-               /* RGB or RGBA */
+               /* RGB or RGBA with color background */
                png_ptr->background_1.red = (png_uint_16)(pow(
                   (double)png_ptr->background.red / m, g) * m + .5);
                png_ptr->background_1.green = (png_uint_16)(pow(
@@ -920,13 +922,11 @@
             }
             else
             {
-               /* GRAY or GRAY ALPHA */
-               png_ptr->background_1.red = png_ptr->background_1.gray;
-               png_ptr->background_1.green = png_ptr->background_1.gray;
-               png_ptr->background_1.blue = png_ptr->background_1.gray;
-               png_ptr->background.red = png_ptr->background.gray;
-               png_ptr->background.green = png_ptr->background.gray;
-               png_ptr->background.blue = png_ptr->background.gray;
+               /* GRAY, GRAY ALPHA, RGB, or RGBA with gray background */
+               png_ptr->background_1.red = png_ptr->background_1.green
+                 = png_ptr->background_1.blue = png_ptr->background_1.gray;
+               png_ptr->background.red = png_ptr->background.green
+                 = png_ptr->background.blue = png_ptr->background.gray;
             }
          }
       }
@@ -2346,7 +2346,7 @@
  * paletted.  Most useful for gamma correction and simplification
  * of code.
  */
-void /* PRIVATE */
+void PNGAPI
 png_build_grayscale_palette(int bit_depth, png_colorp palette)
 {
    int num_palette;
diff --git a/pngrutil.c b/pngrutil.c
index 8bedf39..7085e3c 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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 e42b7d0..ece865b 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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,9 +305,7 @@
    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_TYPE_PALETTE)
-      info_ptr->channels = 1;
-   else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
+   if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
       info_ptr->channels = 3;
    else
       info_ptr->channels = 1;
@@ -688,7 +686,7 @@
 #ifdef PNG_iTXt_SUPPORTED
       {
         /* set iTXt data */
-        if (text_ptr[i].key != NULL)
+        if (text_ptr[i].lang != NULL)
           lang_len = png_strlen(text_ptr[i].lang);
         else
           lang_len = 0;
diff --git a/pngtest.c b/pngtest.c
index 05a0dd2..5cdf9e8 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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_2beta4 your_png_h_is_not_version_1_2_2beta4;
+typedef version_1_2_2beta5 your_png_h_is_not_version_1_2_2beta5;
diff --git a/pngtrans.c b/pngtrans.c
index a39ea2e..2f1a150 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.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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 52111fa..96270a8 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng version 1.2.2beta4 - March 8, 2002
+ * libpng version 1.2.2beta5 - March 26, 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 7f46462..95b0df5 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -171,7 +171,7 @@
    if (write_data_fn != NULL)
       png_ptr->write_data_fn = write_data_fn;
    else
-      png_ptr->write_data_fn = png_default_write_data;
+      png_ptr->write_data_fn = (png_rw_ptr)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_default_flush;
+      png_ptr->output_flush_fn = (png_flush_ptr)png_default_flush;
 #else
    png_ptr->output_flush_fn = output_flush_fn;
 #endif
diff --git a/pngwrite.c b/pngwrite.c
index 9fc2954..4216328 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -451,9 +451,11 @@
    if (png_ptr == NULL)
       return (NULL);
 
+#if !defined(PNG_1_0_X)
 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
    png_init_mmx_flags(png_ptr);   /* 1.2.0 addition */
 #endif
+#endif /* PNG_1_0_X */
 
 #ifdef PNG_SETJMP_SUPPORTED
 #ifdef USE_FAR_KEYWORD
@@ -625,9 +627,11 @@
    /* reset all variables to 0 */
    png_memset(png_ptr, 0, sizeof (png_struct));
 
+#if !defined(PNG_1_0_X)
 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
    png_init_mmx_flags(png_ptr);   /* 1.2.0 addition */
 #endif
+#endif /* PNG_1_0_X */
 
 #ifdef PNG_SETJMP_SUPPORTED
    /* restore jump buffer */
diff --git a/pngwtran.c b/pngwtran.c
index 2991384..2770df6 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.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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 12fc13b..8104e85 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.2.2beta4 - March 8, 2002
+ * libpng 1.2.2beta5 - March 26, 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)
@@ -1349,22 +1349,28 @@
       png_warning(png_ptr, "Empty keyword in iTXt chunk");
       return;
    }
-   if (lang == NULL || (lang_len = png_check_keyword(png_ptr, lang,
-      &new_lang))==0)
+   if (lang == NULL || (lang_len = png_check_keyword(png_ptr, lang, &new_lang))==0)
    {
       png_warning(png_ptr, "Empty language field in iTXt chunk");
-      return;
+      new_lang = NULL;
+      lang_len = 0;      
    }
-   lang_key_len = png_strlen(lang_key);
-   text_len = png_strlen(text);
 
-   if (text == NULL || *text == '\0')
+   if (lang_key == NULL)
+     lang_key_len = 0;
+   else
+     lang_key_len = png_strlen(lang_key);
+
+   if (text == NULL)
       text_len = 0;
+   else
+     text_len = png_strlen(text);
 
    /* compute the compressed data; do it now for the length */
    text_len = png_text_compress(png_ptr, text, text_len, compression-2,
       &comp);
 
+
    /* make sure we include the compression flag, the compression byte,
     * and the NULs after the key, lang, and lang_key parts */
 
@@ -1394,15 +1400,15 @@
    cbuf[1] = 0;
    png_write_chunk_data(png_ptr, cbuf, 2);
 
-   png_write_chunk_data(png_ptr, (png_bytep)new_lang, lang_len + 1);
-   png_write_chunk_data(png_ptr, (png_bytep)lang_key, lang_key_len+1);
-   png_write_chunk_data(png_ptr, '\0', 1);
-
+   cbuf[0] = 0;
+   png_write_chunk_data(png_ptr, (new_lang ? (png_bytep)new_lang : cbuf), lang_len + 1);
+   png_write_chunk_data(png_ptr, (lang_key ? (png_bytep)lang_key : cbuf), lang_key_len + 1);
    png_write_compressed_data_out(png_ptr, &comp);
 
    png_write_chunk_end(png_ptr);
    png_free(png_ptr, new_key);
-   png_free(png_ptr, new_lang);
+   if (new_lang)
+     png_free(png_ptr, new_lang);
 }
 #endif
 
diff --git a/projects/msvc/README.txt b/projects/msvc/README.txt
index cae76cb..c791e1f 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.2beta4 (March 8, 2002) and zlib
+libpng 1.2.2beta5 (March 26, 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 62726a1..f392b10 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.2beta4
+;Version 1.2.2beta5
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
diff --git a/projects/netware.txt b/projects/netware.txt
index d5001bb..51c1976 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.2beta4-project-netware.zip from a libpng distribution
+libpng-1.2.2beta5-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.2beta4-project-netware.zip"
+"unzip -a libpng-1.2.2beta5-project-netware.zip"
diff --git a/projects/wince.txt b/projects/wince.txt
index 7fa5bd3..18021fb 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.2beta4-project-wince.zip from a libpng distribution
+libpng-1.2.2beta5-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.2beta4-project-wince.zip"
+"unzip -a libpng-1.2.2beta5-project-wince.zip"
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index bca5919..1edaeb1 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -1,11 +1,11 @@
 
 prefix=@PREFIX@
-exec_prefix=$(prefix)
-libdir=$(exec_prefix)/lib
-includedir=$(exec_prefix)/include
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${exec_prefix}/include
 
 Name: libpng12
 Description: Loads and saves PNG files
-Version: 1.2.2beta4
-Libs: -L$(libdir) -lpng12
-Cflags: -I$(includedir)/libpng12
+Version: 1.2.2beta5
+Libs: -L${libdir} -lpng12
+Cflags: -I${includedir}/libpng12
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index 1d741b8..e50cbc1 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -33,7 +33,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
@@ -90,8 +90,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -f -s $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -f -s $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -102,11 +102,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index 91483f4..9a48040 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -33,7 +33,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
@@ -90,8 +90,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -f -s $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -f -s $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -102,11 +102,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index 358f5e3..d5688fd 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -18,7 +18,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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index fcb1b5b..d092bcc 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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 ALIGN=
@@ -79,8 +79,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -91,11 +91,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 88db662..d352511 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -39,7 +39,7 @@
 # have to change it.
 PNGMAJ = 0
 #PNGDLL = $12
-PNGMIN = 1.2.2beta4
+PNGMIN = 1.2.2beta5
 PNGMIN_BASE = 1.2.2
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index dc482f7..f712893 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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -74,8 +74,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -86,12 +86,17 @@
 
 install-shared: install-headers $(LIBNAME).dylib
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*.dylib
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).$(PNGMAJ)*.dylib
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).dylib
+	-@/bin/rm -f $(LIBPATH)/libpng.dylib
+	-@/bin/rm -f $(LIBPATH)/libpng.3.dylib
+	-@/bin/rm -f $(LIBPATH)/libpng.3.*.dylib
 	cp $(LIBNAME).$(PNGVER).dylib $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).$(PNGVER).dylib
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).$(PNGVER).dylib libpng.dylib; \
+	ln -sf $(LIBNAME).$(PNGVER).dylib libpng.3.dylib; \
+	ln -sf $(LIBNAME).$(PNGVER).dylib libpng.3.$(PNGMIN).dylib; \
 	ln -sf $(LIBNAME).$(PNGVER).dylib $(LIBNAME).$(PNGMAJ).dylib; \
 	ln -sf $(LIBNAME).$(PNGMAJ).dylib $(LIBNAME).dylib)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index 1e5d77b..9ea5aa6 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -17,7 +17,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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -59,8 +59,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -71,11 +71,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 496b396..4e65335 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -15,7 +15,7 @@
 
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=gcc
@@ -118,8 +118,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -130,11 +130,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index e1008f1..e08cb72 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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -82,8 +82,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -94,11 +94,16 @@
 
 install-shared: install-headers $(LIBNAME).sl.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.sl.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).sl.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).sl
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).sl.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).sl.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.3; \
+	ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.3.$(PNGMIN); \
 	ln -sf $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ); \
 	ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index cdb7d10..297357e 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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -68,8 +68,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -80,11 +80,16 @@
 
 install-shared: install-headers $(LIBNAME).sl.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.sl.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).sl.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).sl
+	-@/bin/rm -f $(LIBPATH)/libpng.sl
+	-@/bin/rm -f $(LIBPATH)/libpng.sl.3
+	-@/bin/rm -f $(LIBPATH)/libpng.sl.3.*
 	cp $(LIBNAME).sl.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).sl.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl; \
+	ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.3; \
+	ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.3.$(PNGMIN); \
 	ln -sf $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ); \
 	ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 1c69433..3cd1e78 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -5,7 +5,7 @@
 
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=gcc
@@ -92,8 +92,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -104,11 +104,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.macosx b/scripts/makefile.macosx
index 2e43709..0bf5729 100644
--- a/scripts/makefile.macosx
+++ b/scripts/makefile.macosx
@@ -20,7 +20,7 @@
 LDSHARED=cc -lz -dynamiclib -compatibility_version $(VER) -current_version $(VER)
 
 PNGMAJ = 0
-PNGMIN = 1.2.2beta4
+PNGMIN = 1.2.2beta5
 VER = $(PNGMAJ).$(PNGMIN)
 LIBNAME=libpng12
 SHAREDLIB_POSTFIX=dylib
@@ -58,24 +58,33 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -sf $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -sf $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
 	cp libpng.a $(LIBPATH)/$(LIBNAME).a
 	chmod 644 $(LIBPATH)/$(LIBNAME).a
 	-@/bin/rm -f $(LIBPATH)/libpng.a
-	ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
+	ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
 
 install-shared: install-headers $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.3*$(SHAREDLIB_POSTFIX)
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).$(PNGMAJ)*.$(SHAREDLIB_POSTFIX)
-	-@/bin/rm -f$(LIBPATH)/$(LIBNAME).$(SHAREDLIB_POSTFIX)
+	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).$(SHAREDLIB_POSTFIX)
+	-@/bin/rm -f libpng.$(SHARED_POSTFIX)
+	-@/bin/rm -f libpng.3.$(SHARED_POSTFIX)
+	-@/bin/rm -f libpng.3.*.$(SHARED_POSTFIX)
 	cp $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX)
-	(cd $(LIBPATH); ln -sf $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX) \
+	(cd $(LIBPATH); \
+	ln -f -s $(LIBNAME).$(PNGVER).$(SHARED_POSTFIX) ]
+        libpng.$(SHARED_POSTFIX); \
+	ln -f -s $(LIBNAME).$(PNGVER).$(SHARED_POSTFIX) ]
+        libpng.3.$(SHARED_POSTFIX); \
+	ln -f -s $(LIBNAME).$(PNGVER).$(SHARED_POSTFIX) ]
+        libpng.3.$(PNGMIN).$(SHARED_POSTFIX); \
+	ln -sf $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX) \
 	$(LIBNAME).$(PNGMAJ).$(SHAREDLIB_POSTFIX); \
 	ln -sf $(LIBNAME).$(PNGMAJ).$(SHAREDLIB_POSTFIX) \
 	$(LIBNAME).$(SHAREDLIB_POSTFIX))
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index d47869f..f93f52b 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -13,7 +13,7 @@
 LIB=png
 # Shared lib name should be png12.
 SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.2.2beta4
+SHLIB_MINOR= 1.2.2beta5
 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.sco b/scripts/makefile.sco
index 01d1378..afab58b 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -72,8 +72,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -f -s $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -f -s $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -84,11 +84,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 04cb84e..b06d67a 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -24,7 +24,7 @@
 LDSHARED=CC $(ABI) -shared
 
 PNGMAJ = 0
-PNGMIN = 1.2.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 # See "man dso" for info about shared objects
 LIBS=libpng12.so.$(PNGMAJ).$(PNGVER)
@@ -63,8 +63,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -f -s $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -f -s $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -75,11 +75,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index ee916e7..a60a132 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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 RANLIB=echo
@@ -71,8 +71,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -f -s $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -f -s $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -83,11 +83,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index a63f996..2db8e5c 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -93,8 +93,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -f -s $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -f -s $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -105,11 +105,16 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
 	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
 	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 6b1c093..bdb0831 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.2beta4
+PNGMIN = 1.2.2beta5
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
@@ -90,8 +90,8 @@
 	cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
 	chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
 	-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
-	ln -f -s $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)
-	ln -f -s $(INCPATH)/$(LIBNAME)/pngconf.h $(INCPATH)
+	-@/bin/rm -f $(INCPATH)/libpng
+	ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
 
 install-static: install-headers libpng.a
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
@@ -102,13 +102,18 @@
 
 install-shared: install-headers $(LIBNAME).so.$(PNGVER)
 	-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
-	-@/bin/rm -f $(LIBPATH)/libpng.so.3*
 	-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
+	-@/bin/rm -f $(LIBPATH)/libpng.so
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3
+	-@/bin/rm -f $(LIBPATH)/libpng.so.3.*
 	cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
 	chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
 	(cd $(LIBPATH); \
-	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
-	ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.3.$(PNGMIN); \
+	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so; \
+	ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ))
 	-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
 	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
 	cp libpng.pc $(LIBPATH)/pkgconfig/libpng12.pc
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index c17c2be..09fcfd5 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -7,7 +7,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.2.2beta4';
+  PNG_LIBPNG_VER_STRING = '1.2.2beta5';
   PNG_LIBPNG_VER        =  10202;
 
 type
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 8f2a007..ffca71a 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
 ; PNG.LIB module definition file for OS/2
 ;----------------------------------------
 
-; Version 1.2.2beta4
+; Version 1.2.2beta5
 
 LIBRARY		PNG
 DESCRIPTION	"PNG image compression library for OS/2"