diff --git a/ANNOUNCE b/ANNOUNCE
index 8065cd6..3025476 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.5.0beta27 - June 19, 2010
+Libpng 1.5.0beta28 - June 20, 2010
 
 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.
@@ -9,20 +9,20 @@
 Source files with LF line endings (for Unix/Linux) and with a
 "configure" script
 
-   1.5.0beta27.tar.xz (LZMA-compressed, recommended)
-   1.5.0beta27.tar.gz
-   1.5.0beta27.tar.bz2
+   1.5.0beta28.tar.xz (LZMA-compressed, recommended)
+   1.5.0beta28.tar.gz
+   1.5.0beta28.tar.bz2
 
 Source files with CRLF line endings (for Windows), without the
 "configure" script
 
-   lp150b27.zip
-   lp150b27.7z
+   lp150b28.zip
+   lp150b28.7z
 
 Other information:
 
-   1.5.0beta27-README.txt
-   1.5.0beta27-LICENSE.txt
+   1.5.0beta28-README.txt
+   1.5.0beta28-LICENSE.txt
 
 Changes since the last public release (1.4.1):
 
@@ -225,16 +225,21 @@
     offset of the png_ptr->rowbuf pointer into png_ptr->big_row_buf.
   Added more blank lines for readability.
 
-version 1.5.0beta25 [June 19, 2010]
+version 1.5.0beta25 [June 20, 2010]
   In pngpread.c: png_push_have_row() add check for new_row > height
   Removed the now-redundant check for out-of-bounds new_row from example.c
 
 version 1.5.0beta26 [June 18, 2010]
   In pngpread.c: png_push_process_row() add check for too many rows.
 
-version 1.5.0beta27 [June 19, 2010]
+version 1.5.0beta27 [June 20, 2010]
   Removed the check added in beta25 as it is now redundant.
 
+version 1.5.0beta28 [June 20, 2010]
+  Rewrote png_process_IDAT_data to consistently treat extra data as warnings
+    and handle end conditions more cleanly.
+  Removed the new (beta26) check in png_push_process_row().
+
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
 (subscription required; visit
 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
diff --git a/CHANGES b/CHANGES
index b982ba3..e0c5502 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2714,9 +2714,14 @@
 version 1.5.0beta26 [June 18, 2010]
   In pngpread.c: png_push_process_row() add check for too many rows.
 
-version 1.5.0beta27 [June 19, 2010]
+version 1.5.0beta27 [June 18, 2010]
   Removed the check added in beta25 as it is now redundant.
 
+version 1.5.0beta28 [June 20, 2010]
+  Rewrote png_process_IDAT_data to consistently treat extra data as warnings
+    and handle end conditions more cleanly.
+  Removed the new (beta26) check in png_push_process_row().
+
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d9e52a3..031704e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -207,7 +207,7 @@
 # SET UP LINKS
 if(PNG_SHARED)
   set_target_properties(${PNG_LIB_NAME} PROPERTIES
-#   VERSION 15.${PNGLIB_RELEASE}.1.5.0beta27
+#   VERSION 15.${PNGLIB_RELEASE}.1.5.0beta28
     VERSION 15.${PNGLIB_RELEASE}.0
     SOVERSION 15
     CLEAN_DIRECT_OUTPUT 1)
diff --git a/INSTALL b/INSTALL
index 905ab48..7e1e573 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.5.0beta27 - June 19, 2010
+Installing libpng version 1.5.0beta28 - June 20, 2010
 
 On Unix/Linux and similar systems, you can simply type
 
@@ -46,7 +46,7 @@
 correspond to the version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.5.0beta27" or "libpng15" and "zlib-1.2.3"
+might be called "libpng-1.5.0beta28" or "libpng15" and "zlib-1.2.3"
 or "zlib123") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
diff --git a/LICENSE b/LICENSE
index efbff6b..ffa7d02 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.5.0beta27, June 19, 2010, are
+libpng versions 1.2.6, August 15, 2004, through 1.5.0beta28, June 20, 2010, are
 Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -108,4 +108,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-June 19, 2010
+June 20, 2010
diff --git a/README b/README
index de27eaf..39842e8 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.5.0beta27 - June 19, 2010 (shared library 15.0)
+README for libpng version 1.5.0beta28 - June 20, 2010 (shared library 15.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
diff --git a/configure b/configure
index 9b56206..c9b844c 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for libpng 1.5.0beta27.
+# Generated by GNU Autoconf 2.65 for libpng 1.5.0beta28.
 #
 # Report bugs to <png-mng-implement@lists.sourceforge.net>.
 #
@@ -701,8 +701,8 @@
 # Identity of this package.
 PACKAGE_NAME='libpng'
 PACKAGE_TARNAME='libpng'
-PACKAGE_VERSION='1.5.0beta27'
-PACKAGE_STRING='libpng 1.5.0beta27'
+PACKAGE_VERSION='1.5.0beta28'
+PACKAGE_STRING='libpng 1.5.0beta28'
 PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
 PACKAGE_URL=''
 
@@ -1432,7 +1432,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libpng 1.5.0beta27 to adapt to many kinds of systems.
+\`configure' configures libpng 1.5.0beta28 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1502,7 +1502,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libpng 1.5.0beta27:";;
+     short | recursive ) echo "Configuration of libpng 1.5.0beta28:";;
    esac
   cat <<\_ACEOF
 
@@ -1607,7 +1607,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libpng configure 1.5.0beta27
+libpng configure 1.5.0beta28
 generated by GNU Autoconf 2.65
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2032,7 +2032,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libpng $as_me 1.5.0beta27, which was
+It was created by libpng $as_me 1.5.0beta28, which was
 generated by GNU Autoconf 2.65.  Invocation command line was
 
   $ $0 $@
@@ -2840,7 +2840,7 @@
 
 # Define the identity of the package.
  PACKAGE='libpng'
- VERSION='1.5.0beta27'
+ VERSION='1.5.0beta28'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2904,7 +2904,7 @@
 
 
 
-PNGLIB_VERSION=1.5.0beta27
+PNGLIB_VERSION=1.5.0beta28
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=5
 PNGLIB_RELEASE=0
@@ -12119,7 +12119,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libpng $as_me 1.5.0beta27, which was
+This file was extended by libpng $as_me 1.5.0beta28, which was
 generated by GNU Autoconf 2.65.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12185,7 +12185,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libpng config.status 1.5.0beta27
+libpng config.status 1.5.0beta28
 configured by $0, generated by GNU Autoconf 2.65,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 6b3ab8e..db4f670 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,12 +18,12 @@
 
 dnl Version number stuff here:
 
-AC_INIT([libpng], [1.5.0beta27], [png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng], [1.5.0beta28], [png-mng-implement@lists.sourceforge.net])
 AM_INIT_AUTOMAKE
 dnl stop configure from automagically running automake
 AM_MAINTAINER_MODE
 
-PNGLIB_VERSION=1.5.0beta27
+PNGLIB_VERSION=1.5.0beta28
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=5
 PNGLIB_RELEASE=0
diff --git a/example.c b/example.c
index a1e069f..4964728 100644
--- a/example.c
+++ b/example.c
@@ -2,7 +2,7 @@
 #if 0 /* in case someone actually tries to compile this */
 
 /* example.c - an example of using libpng
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * This file has been placed in the public domain by the authors.
  * Maintained 1998-2010 Glenn Randers-Pehrson
  * Maintained 1996, 1997 Andreas Dilger)
diff --git a/libpng-1.5.0beta27.txt b/libpng-1.5.0beta28.txt
similarity index 99%
rename from libpng-1.5.0beta27.txt
rename to libpng-1.5.0beta28.txt
index bd30297..82056fb 100644
--- a/libpng-1.5.0beta27.txt
+++ b/libpng-1.5.0beta28.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.5.0beta27 - June 19, 2010
+ libpng version 1.5.0beta28 - June 20, 2010
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2009 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.5.0beta27 - June 19, 2010
+ libpng versions 0.97, January 1998, through 1.5.0beta28 - June 20, 2010
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2009 Glenn Randers-Pehrson
 
@@ -906,7 +906,7 @@
 As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
 added.  It expands the sample depth without changing tRNS to alpha.
 
-As of libpng version 1.5.0beta27, not all possible expansions are supported.
+As of libpng version 1.5.0beta28, not all possible expansions are supported.
 
 In the following table, the 01 means grayscale with depth<8, 31 means
 indexed with depth<8, other numerals represent the color type, "T" means
@@ -3301,13 +3301,13 @@
 
 XIII. Y2K Compliance in libpng
 
-June 19, 2010
+June 20, 2010
 
 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.5.0beta27 are Y2K compliant.  It is my belief that earlier
+upward through 1.5.0beta28 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
diff --git a/libpng.3 b/libpng.3
index 8c7d9c5..c40b590 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "June 19, 2010"
+.TH LIBPNG 3 "June 20, 2010"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta27
+libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta28
 .SH SYNOPSIS
 \fI\fB
 
@@ -789,7 +789,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.5.0beta27 - June 19, 2010
+ libpng version 1.5.0beta28 - June 20, 2010
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2009 Glenn Randers-Pehrson
@@ -800,7 +800,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.5.0beta27 - June 19, 2010
+ libpng versions 0.97, January 1998, through 1.5.0beta28 - June 20, 2010
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2009 Glenn Randers-Pehrson
 
@@ -1695,7 +1695,7 @@
 As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
 added.  It expands the sample depth without changing tRNS to alpha.
 
-As of libpng version 1.5.0beta27, not all possible expansions are supported.
+As of libpng version 1.5.0beta28, not all possible expansions are supported.
 
 In the following table, the 01 means grayscale with depth<8, 31 means
 indexed with depth<8, other numerals represent the color type, "T" means
@@ -4090,13 +4090,13 @@
 
 .SH XIII. Y2K Compliance in libpng
 
-June 19, 2010
+June 20, 2010
 
 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.5.0beta27 are Y2K compliant.  It is my belief that earlier
+upward through 1.5.0beta28 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
@@ -4275,7 +4275,7 @@
  1.4.1               14    10401  14.so.14.1[.0]
  1.4.2               14    10402  14.so.14.2[.0]
  1.4.3               14    10403  14.so.14.3[.0]
- 1.5.0beta01-27      15    10500  15.so.15.0[.0]
+ 1.5.0beta01-28      15    10500  15.so.15.0[.0]
 
 Henceforth the source version will match the shared-library minor
 and patch numbers; the shared-library major version number will be
@@ -4332,7 +4332,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.5.0beta27 - June 19, 2010:
+Libpng version 1.5.0beta28 - June 20, 2010:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -4355,7 +4355,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.5.0beta27, June 19, 2010, are
+libpng versions 1.2.6, August 15, 2004, through 1.5.0beta28, June 20, 2010, are
 Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -4454,7 +4454,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-June 19, 2010
+June 20, 2010
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index 40bbe9f..7f2714f 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "June 19, 2010"
+.TH LIBPNGPF 3 "June 20, 2010"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta27
+libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta28
 (private functions)
 .SH SYNOPSIS
 \fB#include \fI"pngpriv.h"
diff --git a/png.5 b/png.5
index bc24517..398f4cf 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "June 19, 2010"
+.TH PNG 5 "June 20, 2010"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 726d154..be50008 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 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.)
@@ -14,7 +14,7 @@
 #include "pngpriv.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_5_0beta27 Your_png_h_is_not_version_1_5_0beta27;
+typedef version_1_5_0beta28 Your_png_h_is_not_version_1_5_0beta28;
 
 /* Version information for C files.  This had better match the version
  * string defined in png.h.
@@ -560,13 +560,13 @@
 #else
 #  ifdef __STDC__
    return ((png_charp) PNG_STRING_NEWLINE \
-     "libpng version 1.5.0beta27 - June 19, 2010" PNG_STRING_NEWLINE \
+     "libpng version 1.5.0beta28 - June 20, 2010" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2010 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
      "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
      "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
      PNG_STRING_NEWLINE);
 #  else
-      return ((png_charp) "libpng version 1.5.0beta27 - June 19, 2010\
+      return ((png_charp) "libpng version 1.5.0beta28 - June 20, 2010\
       Copyright (c) 1998-2010 Glenn Randers-Pehrson\
       Copyright (c) 1996-1997 Andreas Dilger\
       Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.");
diff --git a/png.h b/png.h
index ae7462d..c156a22 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.5.0beta27 - June 19, 2010
+ * libpng version 1.5.0beta28 - June 20, 2010
  * Copyright (c) 1998-2010 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.)
@@ -11,7 +11,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.5.0beta27 - June 19, 2010: Glenn
+ *   libpng versions 0.97, January 1998, through 1.5.0beta28 - June 20, 2010: Glenn
  *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -140,7 +140,7 @@
  *    1.4.1                   14    10401  14.so.14.1[.0]
  *    1.4.2                   14    10402  14.so.14.2[.0]
  *    1.4.3                   14    10403  14.so.14.3[.0]
- *    1.5.0beta01-27          15    10500  15.so.15.0[.0]
+ *    1.5.0beta01-28          15    10500  15.so.15.0[.0]
  *
  *   Henceforth the source version will match the shared-library major
  *   and minor numbers; the shared-library major version number will be
@@ -172,7 +172,7 @@
  *
  * This code is released under the libpng license.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.5.0beta27, June 19, 2010, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.5.0beta28, June 20, 2010, are
  * Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.2.5
  * with the following individual added to the list of Contributing Authors:
@@ -284,13 +284,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    June 19, 2010
+ *    June 20, 2010
  *
  *    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.5.0beta27 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.5.0beta28 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
@@ -346,9 +346,9 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.5.0beta27"
+#define PNG_LIBPNG_VER_STRING "1.5.0beta28"
 #define PNG_HEADER_VERSION_STRING \
-     " libpng version 1.5.0beta27 - June 19, 2010\n"
+     " libpng version 1.5.0beta28 - June 20, 2010\n"
 
 #define PNG_LIBPNG_VER_SONUM   15
 #define PNG_LIBPNG_VER_DLLNUM  15
@@ -361,7 +361,7 @@
  * PNG_LIBPNG_VER_STRING, omitting any leading zero:
  */
 
-#define PNG_LIBPNG_VER_BUILD  27
+#define PNG_LIBPNG_VER_BUILD  28
 
 /* Release Status */
 #define PNG_LIBPNG_BUILD_ALPHA    1
@@ -836,7 +836,7 @@
 /* This triggers a compiler error in png.c, if png.c and png.h
  * do not agree upon the version number.
  */
-typedef png_structp version_1_5_0beta27;
+typedef png_structp version_1_5_0beta28;
 
 typedef png_struct FAR * FAR * png_structpp;
 
diff --git a/pngconf.h b/pngconf.h
index b451046..0f5661e 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.5.0beta27 - June 19, 2010
+ * libpng version 1.5.0beta28 - June 20, 2010
  *
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngdebug.h b/pngdebug.h
index 54b0f0f..fe2bebc 100644
--- a/pngdebug.h
+++ b/pngdebug.h
@@ -5,7 +5,7 @@
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
- * Last changed in libpng version 1.5.0 - June 19, 2010
+ * Last changed in libpng version 1.5.0 - June 20, 2010
  *
  * This code is released under the libpng license.
  * For conditions of distribution and use, see the disclaimer
diff --git a/pngerror.c b/pngerror.c
index b16072e..e75a1d5 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngget.c b/pngget.c
index 192a1d2..aa4d5e9 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * Last changed in libpng 1.4.1 [June 19, 2010]
+ * Last changed in libpng 1.4.1 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pnginfo.h b/pnginfo.h
index 0a68c69..d9ffd25 100644
--- a/pnginfo.h
+++ b/pnginfo.h
@@ -5,7 +5,7 @@
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
- * Last changed in libpng version 1.5.0 - June 19, 2010
+ * Last changed in libpng version 1.5.0 - June 20, 2010
  *
  * This code is released under the libpng license.
  * For conditions of distribution and use, see the disclaimer
diff --git a/pngmem.c b/pngmem.c
index fe4c90e..4a05ec9 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngpread.c b/pngpread.c
index 390a82c..44be1c4 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 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.)
@@ -787,8 +787,7 @@
 
       png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
 
-      if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
-         png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
+      png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
 
       png_ptr->idat_size -= save_size;
       png_ptr->buffer_size -= save_size;
@@ -812,8 +811,7 @@
 
       png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
 
-      if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
-         png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
+      png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
 
       png_ptr->idat_size -= save_size;
       png_ptr->buffer_size -= save_size;
@@ -838,63 +836,101 @@
 png_process_IDAT_data(png_structp png_ptr, png_bytep buffer,
    png_size_t buffer_length)
 {
-   int ret;
+   /* The caller checks for a non-zero buffer length. */
+   if (!(buffer_length > 0) || buffer == 0)
+      png_error(png_ptr, "No IDAT data (internal error)");
 
-   if ((png_ptr->flags & PNG_FLAG_ZLIB_FINISHED) && buffer_length)
-      png_benign_error(png_ptr, "Extra compression data");
-
+   /* This routine must process all the data it has been given
+    * before returning, calling the row callback as required to
+    * handle the uncomrpessed results.
+    */
    png_ptr->zstream.next_in = buffer;
    png_ptr->zstream.avail_in = (uInt)buffer_length;
-   for (;;)
+
+   /* Keep going until the decompressed data is all processed
+    * or the stream marked as finished.
+    */
+   while (png_ptr->zstream.avail_in > 0 &&
+	  !(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
    {
-      ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
-      if (ret != Z_OK)
+      int ret;
+
+      /* We have data for zlib, but we must check that zlib
+       * has somewhere to put the results.  It doesn't matter
+       * if we don't expect any results - it may be the input
+       * data is just the LZ end code.
+       */
+      if (!(png_ptr->zstream.avail_out > 0))
       {
-         if (ret == Z_STREAM_END)
-         {
-            if (png_ptr->zstream.avail_in)
-               png_benign_error(png_ptr, "Extra compressed data");
-
-            if (!(png_ptr->zstream.avail_out))
-            {
-               png_push_process_row(png_ptr);
-            }
-
-            png_ptr->mode |= PNG_AFTER_IDAT;
-            png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
-            break;
-         }
-         else if (ret == Z_BUF_ERROR)
-            break;
-
-         else
-            png_error(png_ptr, "Decompression Error");
-      }
-      if (!(png_ptr->zstream.avail_out))
-      {
-         if ((
-#ifdef PNG_READ_INTERLACING_SUPPORTED
-             png_ptr->interlaced && png_ptr->pass > 6) ||
-             (!png_ptr->interlaced &&
-#endif
-             png_ptr->row_number == png_ptr->num_rows))
-         {
-            if (png_ptr->zstream.avail_in)
-               png_warning(png_ptr, "Too much data in IDAT chunks");
-
-            png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
-            break;
-         }
-         png_push_process_row(png_ptr);
          png_ptr->zstream.avail_out =
              (uInt) PNG_ROWBYTES(png_ptr->pixel_depth,
              png_ptr->iwidth) + 1;
          png_ptr->zstream.next_out = png_ptr->row_buf;
       }
 
-      else
-         break;
+      /* Using Z_SYNC_FLUSH here means that an unterminated
+       * LZ stream can still be handled (a stream with a missing
+       * end code), otherwise (Z_NO_FLUSH) a future zlib
+       * implementation might defer output and, therefore,
+       * change the current behavior.  (See comments in inflate.c
+       * for why this doesn't happen at present with zlib 1.2.5.)
+       */
+      ret = inflate(&png_ptr->zstream, Z_SYNC_FLUSH);
+
+      /* Check for any failure before proceeding. */
+      if (ret != Z_OK && ret != Z_STREAM_END)
+      {
+	 /* Terminate the decompression. */
+	 png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
+
+         /* This may be a truncated stream (missing or
+	  * damaged end code).  Treat that as a warning.
+	  */
+         if (png_ptr->row_number >= png_ptr->num_rows ||
+	     png_ptr->pass > 6)
+	    png_warning(png_ptr, "Truncated compressed data");
+	 else
+	    png_error(png_ptr, "Decompression error");
+
+	 /* Skip the check on unprocessed input */
+         return;
+      }
+
+      /* Did inflate output any data? */
+      if (png_ptr->zstream.next_out != png_ptr->row_buf)
+      {
+	 /* Is this unexpected data after the last row?
+	  * If it is, artificially terminate the LZ output
+	  * here.
+	  */
+         if (png_ptr->row_number >= png_ptr->num_rows ||
+	     png_ptr->pass > 6)
+         {
+	    /* Extra data. */
+	    png_warning(png_ptr, "Extra compressed data");
+            png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
+	    /* Do not more proecessing, skip the unprocessed
+	     * input check below.
+	     */
+            return;
+	 }
+
+	 /* Do we have a complete row? */
+	 if (png_ptr->zstream.avail_out == 0)
+	    png_push_process_row(png_ptr);
+
+	 /* And check for the end of the stream. */
+	 if (ret == Z_STREAM_END)
+            png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
+      }
    }
+
+   /* All the data should have been processed, if anything
+    * is left at this point we have bytes of IDAT data
+    * after the zlib end code.
+    */
+   if (png_ptr->zstream.avail_in > 0)
+      png_warning(png_ptr, "Extra compression data");
 }
 
 void /* PRIVATE */
diff --git a/pngpriv.h b/pngpriv.h
index 6974e64..d6bc767 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -1,7 +1,7 @@
 
 /* pngpriv.h - private declarations for use inside libpng
  *
- * libpng version 1.5.0beta27 - June 19, 2010
+ * libpng version 1.5.0beta28 - June 20, 2010
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index 8391adf..acae0ce 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngrio.c b/pngrio.c
index 46dfd85..6dcbc6b 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngrtran.c b/pngrtran.c
index 9a5ef3c..95ad445 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngrutil.c b/pngrutil.c
index ed322f8..cf66306 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * Last changed in libpng 1.4.1 [June 19, 2010]
+ * Last changed in libpng 1.4.1 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngset.c b/pngset.c
index e3bde80..d4b6c8d 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngstruct.h b/pngstruct.h
index 637baab..78231e5 100644
--- a/pngstruct.h
+++ b/pngstruct.h
@@ -5,7 +5,7 @@
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
- * Last changed in libpng version 1.5.0 - June 19, 2010
+ * Last changed in libpng version 1.5.0 - June 20, 2010
  *
  * This code is released under the libpng license.
  * For conditions of distribution and use, see the disclaimer
diff --git a/pngtest.c b/pngtest.c
index f7c61e6..45028c9 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 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.)
@@ -1716,4 +1716,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_5_0beta27 your_png_h_is_not_version_1_5_0beta27;
+typedef version_1_5_0beta28 your_png_h_is_not_version_1_5_0beta28;
diff --git a/pngtrans.c b/pngtrans.c
index 991c691..85fafb2 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)
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngwio.c b/pngwio.c
index 9b727fd..a231d31 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngwrite.c b/pngwrite.c
index ff3fb05..a0eb567 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngwtran.c b/pngwtran.c
index 4aa406e..8a6f72a 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/pngwutil.c b/pngwutil.c
index 969bdd6..510095a 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * Last changed in libpng 1.5.0 [June 19, 2010]
+ * Last changed in libpng 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index 148b481..7eb3fcb 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.5.0beta27 - June 19, 2010
+libpng version 1.5.0beta28 - June 20, 2010
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index bf78fbd..ecca622 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
 <!--
  * zlib.props - location of zlib source and build
  *
- * libpng version 1.5.0beta27 - June 19, 2010
+ * libpng version 1.5.0beta28 - June 20, 2010
  *
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index 913e252..67ad25e 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,9 +1,9 @@
 
-Makefiles for  libpng version 1.5.0beta27 - June 19, 2010
+Makefiles for  libpng version 1.5.0beta28 - June 20, 2010
 
 pnglibconf.h       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
-                       (gcc, creates libpng15.so.15.1.5.0beta27)
+                       (gcc, creates libpng15.so.15.1.5.0beta28)
  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a)
  makefile.knr      =>  Archaic UNIX Makefile that converts files with
                        ansi2knr (Requires ansi2knr.c from
@@ -20,7 +20,7 @@
  makefile.dec      =>  DEC Alpha UNIX makefile
  makefile.dj2      =>  DJGPP 2 makefile
  makefile.elf      =>  Linux/ELF makefile symbol versioning,
-                       gcc, creates libpng15.so.15.1.5.0beta27)
+                       gcc, creates libpng15.so.15.1.5.0beta28)
  makefile.freebsd  =>  FreeBSD makefile
  makefile.gcc      =>  Generic gcc makefile
  makefile.hpgcc    =>  HPUX makefile using gcc
@@ -35,12 +35,12 @@
  makefile.os2      =>  OS/2 Makefile (gcc and emx, requires libpng.def)
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
  makefile.sggcc    =>  Silicon Graphics (gcc,
-                       creates libpng15.so.15.1.5.0beta27)
+                       creates libpng15.so.15.1.5.0beta28)
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
  makefile.solaris  =>  Solaris 2.X makefile (gcc,
-                       creates libpng15.so.15.1.5.0beta27)
+                       creates libpng15.so.15.1.5.0beta28)
  makefile.so9      =>  Solaris 9 makefile (gcc,
-                       creates libpng15.so.15.1.5.0beta27)
+                       creates libpng15.so.15.1.5.0beta28)
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
  makefile.sunos    =>  Sun makefile
  makefile.32sunu   =>  Sun Ultra 32-bit makefile
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index 70c9373..2a6ffe6 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -11,7 +11,7 @@
 
 # Modeled after libxml-config.
 
-version=1.5.0beta27
+version=1.5.0beta28
 prefix=""
 libdir=""
 libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 7056116..ac3b8e9 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -5,6 +5,6 @@
 
 Name: libpng
 Description: Loads and saves PNG files
-Version: 1.5.0beta27
+Version: 1.5.0beta28
 Libs: -L${libdir} -lpng15
 Cflags: -I${includedir}
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index 381ab84..84397f2 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -17,7 +17,7 @@
 
 LIB=	png15
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.5.0beta27
+SHLIB_MINOR=	1.5.0beta28
 SRCS=	png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
 	pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 	pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index fdedcd9..867f16c 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -17,7 +17,7 @@
 
 LIB=	png
 SHLIB_MAJOR=	3
-SHLIB_MINOR=	1.5.0beta27
+SHLIB_MINOR=	1.5.0beta28
 SRCS=	png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
 	pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 	pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd
index 4a833fd..c5b078b 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -11,7 +11,7 @@
 MANDIR= ${PREFIX}/man/cat
 
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.5.0beta27
+SHLIB_MINOR=	1.5.0beta28
 
 LIB=	png
 SRCS=	png.c pngerror.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/options.awk b/scripts/options.awk
index 6f17c03..dc3a536 100755
--- a/scripts/options.awk
+++ b/scripts/options.awk
@@ -1,7 +1,7 @@
 #!/bin/awk -f
 # scripts/options.awk - library build configuration control
 #
-# last changed in libpng version 1.5.0 - June 19, 2010
+# last changed in libpng version 1.5.0 - June 20, 2010
 #
 # Copyright (c) 1998-2010 Glenn Randers-Pehrson
 #
diff --git a/scripts/pnglibconf.dfa b/scripts/pnglibconf.dfa
index d1d7aa4..2031f73 100644
--- a/scripts/pnglibconf.dfa
+++ b/scripts/pnglibconf.dfa
@@ -6,7 +6,7 @@
 #
 com pnglibconf.h - library build configuration
 com
-com libpng version PNGLIB_VERSION - last changed on June 19, 2010
+com libpng version PNGLIB_VERSION - last changed on June 20, 2010
 com
 com Copyright (c) 1998-2010 Glenn Randers-Pehrson
 com
diff --git a/scripts/pnglibconf.h b/scripts/pnglibconf.h
index 0261bd3..d770ce7 100644
--- a/scripts/pnglibconf.h
+++ b/scripts/pnglibconf.h
@@ -1,7 +1,7 @@
-/* libpng-1.5.0beta27 STANDARD API DEFINITION */
+/* libpng-1.5.0beta28 STANDARD API DEFINITION */
 /* pnglibconf.h - library build configuration */
 
-/* last changed in libpng version 1.5.0 - June 19, 2010 */
+/* last changed in libpng version 1.5.0 - June 20, 2010 */
 
 /* Copyright (c) 1998-2010 Glenn Randers-Pehrson */
 
diff --git a/scripts/pngwin.def b/scripts/pngwin.def
index 980308b..6633b28 100644
--- a/scripts/pngwin.def
+++ b/scripts/pngwin.def
@@ -11,7 +11,7 @@
 ;OS2 CODE PRELOAD MOVEABLE DISCARDABLE
 
 EXPORTS
-;Version 1.5.0beta27
+;Version 1.5.0beta28
  png_access_version_number @1
  png_set_sig_bytes @2
  png_sig_cmp @3
diff --git a/scripts/pngwin.dfn b/scripts/pngwin.dfn
index 8727994..44d7975 100644
--- a/scripts/pngwin.dfn
+++ b/scripts/pngwin.dfn
@@ -1,7 +1,7 @@
 
 /* pngwin.dfn - define format of pngwin.def
  *
- * Last changed in libpng version 1.5.0 [June 19, 2010]
+ * Last changed in libpng version 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  *
  * This code is released under the libpng license.
diff --git a/scripts/sym.dfn b/scripts/sym.dfn
index 86347e0..29bf6b9 100644
--- a/scripts/sym.dfn
+++ b/scripts/sym.dfn
@@ -1,7 +1,7 @@
 
 /* sym.dfn - define format of libpng.sym
  *
- * Last changed in libpng version 1.5.0 [June 19, 2010]
+ * Last changed in libpng version 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  *
  * This code is released under the libpng license.
diff --git a/scripts/symbols.def b/scripts/symbols.def
index 6998b38..1fafd42 100644
--- a/scripts/symbols.def
+++ b/scripts/symbols.def
@@ -5,7 +5,7 @@
 LIBRARY
 
 EXPORTS
-;Version 1.5.0beta27
+;Version 1.5.0beta28
  png_access_version_number @1
  png_set_sig_bytes @2
  png_sig_cmp @3
diff --git a/scripts/symbols.dfn b/scripts/symbols.dfn
index 0597c00..a0a8ba0 100644
--- a/scripts/symbols.dfn
+++ b/scripts/symbols.dfn
@@ -1,7 +1,7 @@
 
 /* symbols.dfn - find all exported symbols
  *
- * Last changed in libpng version 1.5.0 [June 19, 2010]
+ * Last changed in libpng version 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  *
  * This code is released under the libpng license.
diff --git a/scripts/vers.dfn b/scripts/vers.dfn
index c51ff25..7a72425 100644
--- a/scripts/vers.dfn
+++ b/scripts/vers.dfn
@@ -1,7 +1,7 @@
 
 /* vers.dfn - define format of libpng.vers
  *
- * Last changed in libpng version 1.5.0 [June 19, 2010]
+ * Last changed in libpng version 1.5.0 [June 20, 2010]
  * Copyright (c) 1998-2010 Glenn Randers-Pehrson
  *
  * This code is released under the libpng license.
