diff --git a/ANNOUNCE b/ANNOUNCE
index e6c2c6a..9e21d99 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.2.19beta29 - July 20, 2007
+Libpng 1.2.19beta30 - July 26, 2007
 
 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,32 +9,32 @@
 Source files with LF line endings (for Unix/Linux) and with a
 "configure" script
 
-   libpng-1.2.19beta29.tar.gz
-   libpng-1.2.19beta29.tar.bz2
+   libpng-1.2.19beta30.tar.gz
+   libpng-1.2.19beta30.tar.bz2
 
 Source files with LF line endings (for Unix/Linux) without the
 "configure" script
 
-   libpng-1.2.19beta29-no-config.tar.gz
-   libpng-1.2.19beta29-no-config.tar.bz2
+   libpng-1.2.19beta30-no-config.tar.gz
+   libpng-1.2.19beta30-no-config.tar.bz2
 
 Source files with CRLF line endings (for Windows), without the
 "configure" script
 
-   lp1219b29.zip
-   lp1219b29.tar.bz2
+   lp1219b30.zip
+   lp1219b30.tar.bz2
 
 Project files
 
-   libpng-1.2.19beta29-project-netware.zip
-   libpng-1.2.19beta29-project-wince.zip
+   libpng-1.2.19beta30-project-netware.zip
+   libpng-1.2.19beta30-project-wince.zip
 
 Other information:
 
-   libpng-1.2.19beta29-README.txt
-   libpng-1.2.19beta29-KNOWNBUGS.txt
-   libpng-1.2.19beta29-LICENSE.txt
-   libpng-1.2.19beta29-Y2K-compliance.txt
+   libpng-1.2.19beta30-README.txt
+   libpng-1.2.19beta30-KNOWNBUGS.txt
+   libpng-1.2.19beta30-LICENSE.txt
+   libpng-1.2.19beta30-Y2K-compliance.txt
 
 Changes since the last public release (1.2.18):
 
@@ -163,6 +163,9 @@
 version 1.2.19beta29 [July 20, 2007]
   Fix typo in pnggccrd.c (%%eax should be %%ax in secondloop48)
 
+version 1.2.19beta30 [July 26, 2007]
+  Revised pnggccrd.c
+
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 
 (subscription required; visit 
diff --git a/CHANGES b/CHANGES
index 6fe07f0..f3b784f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1856,6 +1856,9 @@
 version 1.2.19beta29 [July 20, 2007]
   Fix typo in pnggccrd.c (%%eax should be %%ax in secondloop48)
 
+version 1.2.19beta30 [July 26, 2007]
+  Revised pnggccrd.c
+
 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/INSTALL b/INSTALL
index a0a73bc..9846dff 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.2.19beta29 - July 20, 2007
+Installing libpng version 1.2.19beta30 - July 26, 2007
 
 On Unix/Linux and similar systems, you can simply type
 
@@ -44,7 +44,7 @@
 correspond to the version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.2.19beta29" or "lpng109" and "zlib-1.2.1"
+might be called "libpng-1.2.19beta30" or "lpng109" and "zlib-1.2.1"
 or "zlib121") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -101,14 +101,14 @@
  CMakeLists.txt    =>  "cmake" script
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
  makefile.elf      =>  Linux/ELF makefile symbol versioning,
-                       gcc, creates libpng12.so.0.1.2.19beta29)
+                       gcc, creates libpng12.so.0.1.2.19beta30)
  makefile.linux    =>  Linux/ELF makefile
-                       (gcc, creates libpng12.so.0.1.2.19beta29)
+                       (gcc, creates libpng12.so.0.1.2.19beta30)
  makefile.gcmmx    =>  Linux/ELF makefile
-                       (gcc, creates libpng12.so.0.1.2.19beta29,
+                       (gcc, creates libpng12.so.0.1.2.19beta30,
                        uses assembler code tuned for Intel MMX platform)
  makefile.nommx    =>  Linux/ELF makefile
-                       (gcc, creates libpng12.so.0.1.2.19beta29
+                       (gcc, creates libpng12.so.0.1.2.19beta30
                        does not use Intel MMX assembler code)
  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a)
  makefile.knr      =>  Archaic UNIX Makefile that converts files with
@@ -131,14 +131,14 @@
  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.19beta29)
+                       creates libpng12.so.0.1.2.19beta30)
  makefile.sunos    =>  Sun makefile
  makefile.solaris  =>  Solaris 2.X makefile (gcc,
-                       creates libpng12.so.0.1.2.19beta29)
+                       creates libpng12.so.0.1.2.19beta30)
  makefile.solaris-x86 =>  Solaris/intelMMX 2.X makefile (gcc,
-                       creates libpng12.so.0.1.2.19beta29)
+                       creates libpng12.so.0.1.2.19beta30)
  makefile.so9      =>  Solaris 9 makefile (gcc,
-                       creates libpng12.so.0.1.2.19beta29)
+                       creates libpng12.so.0.1.2.19beta30)
  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 6275215..d1a4a16 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
 
-Known bugs in libpng version 1.2.19beta29
+Known bugs in libpng version 1.2.19beta30
 
 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
    reading interlaced PNG files, when assembler code is enabled but running
diff --git a/LICENSE b/LICENSE
index 56999ce..ed02198 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.2.6, August 15, 2004, through 1.2.19beta29, July 20, 2007, are
+libpng versions 1.2.6, August 15, 2004, through 1.2.19beta30, July 26, 2007, 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
@@ -106,4 +106,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-July 20, 2007
+July 26, 2007
diff --git a/README b/README
index e1e43cd..b3f11f3 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.2.19beta29 - July 20, 2007 (shared library 12.0)
+README for libpng version 1.2.19beta30 - July 26, 2007 (shared library 12.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
@@ -190,11 +190,11 @@
        descrip.mms      =>  VMS makefile for MMS or MMK
        makefile.std     =>  Generic UNIX makefile (cc, creates static libpng.a)
        makefile.elf     =>  Linux/ELF makefile symbol versioning,
-                            gcc, creates libpng12.so.0.1.2.19beta29)
+                            gcc, creates libpng12.so.0.1.2.19beta30)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta29)
+                            (gcc, creates libpng12.so.0.1.2.19beta30)
        makefile.gcmmx   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta29,
+                            (gcc, creates libpng12.so.0.1.2.19beta30,
                             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
@@ -216,12 +216,12 @@
        makefile.openbsd =>  OpenBSD makefile
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
        makefile.sggcc   =>  Silicon Graphics
-                            (gcc, creates libpng12.so.0.1.2.19beta29)
+                            (gcc, creates libpng12.so.0.1.2.19beta30)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta29)
+                            (gcc, creates libpng12.so.0.1.2.19beta30)
        makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta29)
+                            (gcc, creates libpng12.so.0.1.2.19beta30)
        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 22e7b72..9cef4d1 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      July 20, 2007
+      July 26, 2007
 
       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.19beta29 are Y2K compliant.  It is my belief that earlier
+      upward through 1.2.19beta30 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 6b50cda..7a73df1 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.61 for libpng 1.2.19beta29.
+# Generated by GNU Autoconf 2.61 for libpng 1.2.19beta30.
 #
 # Report bugs to <png-mng-implement@lists.sourceforge.net>.
 #
@@ -728,8 +728,8 @@
 # Identity of this package.
 PACKAGE_NAME='libpng'
 PACKAGE_TARNAME='libpng'
-PACKAGE_VERSION='1.2.19beta29'
-PACKAGE_STRING='libpng 1.2.19beta29'
+PACKAGE_VERSION='1.2.19beta30'
+PACKAGE_STRING='libpng 1.2.19beta30'
 PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
 
 ac_unique_file="pngget.c"
@@ -1405,7 +1405,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.2.19beta29 to adapt to many kinds of systems.
+\`configure' configures libpng 1.2.19beta30 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1475,7 +1475,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libpng 1.2.19beta29:";;
+     short | recursive ) echo "Configuration of libpng 1.2.19beta30:";;
    esac
   cat <<\_ACEOF
 
@@ -1585,7 +1585,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libpng configure 1.2.19beta29
+libpng configure 1.2.19beta30
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1599,7 +1599,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.2.19beta29, which was
+It was created by libpng $as_me 1.2.19beta30, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2269,7 +2269,7 @@
 
 # Define the identity of the package.
  PACKAGE='libpng'
- VERSION='1.2.19beta29'
+ VERSION='1.2.19beta30'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2440,7 +2440,7 @@
 
 
 
-PNGLIB_VERSION=1.2.19beta29
+PNGLIB_VERSION=1.2.19beta30
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=2
 PNGLIB_RELEASE=19
@@ -21282,7 +21282,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.2.19beta29, which was
+This file was extended by libpng $as_me 1.2.19beta30, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21335,7 +21335,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-libpng config.status 1.2.19beta29
+libpng config.status 1.2.19beta30
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/configure.ac b/configure.ac
index 959d8d9..d039f9d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,12 +18,12 @@
 
 dnl Version number stuff here:
 
-AC_INIT([libpng], [1.2.19beta29], [png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng], [1.2.19beta30], [png-mng-implement@lists.sourceforge.net])
 AM_INIT_AUTOMAKE
 dnl stop configure from automagically running automake
 AM_MAINTAINER_MODE
 
-PNGLIB_VERSION=1.2.19beta29
+PNGLIB_VERSION=1.2.19beta30
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=2
 PNGLIB_RELEASE=19
diff --git a/libpng-1.2.19beta29.txt b/libpng-1.2.19beta30.txt
similarity index 99%
rename from libpng-1.2.19beta29.txt
rename to libpng-1.2.19beta30.txt
index 3f830cb..b3554ca 100644
--- a/libpng-1.2.19beta29.txt
+++ b/libpng-1.2.19beta30.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.19beta29 - July 20, 2007
+ libpng version 1.2.19beta30 - July 26, 2007
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2007 Glenn Randers-Pehrson
@@ -2921,13 +2921,13 @@
 
 IX. Y2K Compliance in libpng
 
-July 20, 2007
+July 26, 2007
 
 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.19beta29 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.19beta30 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 27c8e51..0e9804c 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "July 20, 2007"
+.TH LIBPNG 3 "July 26, 2007"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta29
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta30
 .SH SYNOPSIS
 \fB
 #include <png.h>\fP
@@ -410,7 +410,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.19beta29 - July 20, 2007
+ libpng version 1.2.19beta30 - July 26, 2007
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2007 Glenn Randers-Pehrson
@@ -3331,13 +3331,13 @@
 
 .SH IX. Y2K Compliance in libpng
 
-July 20, 2007
+July 26, 2007
 
 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.19beta29 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.19beta30 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
@@ -3526,7 +3526,7 @@
  1.2.17              13    10217  12.so.0.17[.0]
  1.0.26              10    10026  10.so.0.26[.0]
  1.2.18              13    10218  12.so.0.18[.0]
- 1.2.19beta1-28      13    10219  12.so.0.19[.0]
+ 1.2.19beta1-30      13    10219  12.so.0.19[.0]
 
 Henceforth the source version will match the shared-library minor
 and patch numbers; the shared-library major version number will be
@@ -3582,7 +3582,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.2.19beta29 - July 20, 2007:
+Libpng version 1.2.19beta30 - July 26, 2007:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -3603,7 +3603,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.2.6, August 15, 2004, through 1.2.19beta29, July 20, 2007, are
+libpng versions 1.2.6, August 15, 2004, through 1.2.19beta30, July 26, 2007, 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
@@ -3702,7 +3702,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-July 20, 2007
+July 26, 2007
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index 7bb7557..a3f7e39 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "July 20, 2007"
+.TH LIBPNGPF 3 "July 26, 2007"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta29
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta30
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index 9f45956..82f071d 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "July 20, 2007"
+.TH PNG 5 "July 26, 2007"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index a0452d1..3be0718 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * Last changed in libpng 1.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -13,7 +13,7 @@
 #include "png.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_19beta29 Your_png_h_is_not_version_1_2_19beta29;
+typedef version_1_2_19beta30 Your_png_h_is_not_version_1_2_19beta30;
 
 /* Version information for C files.  This had better match the version
  * string defined in png.h.  */
@@ -706,7 +706,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    png_ptr = png_ptr;  /* silence compiler warning about unused png_ptr */
-   return ((png_charp) "\n libpng version 1.2.19beta29 - July 20, 2007\n\
+   return ((png_charp) "\n libpng version 1.2.19beta30 - July 26, 2007\n\
    Copyright (c) 1998-2007 Glenn Randers-Pehrson\n\
    Copyright (c) 1996-1997 Andreas Dilger\n\
    Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
diff --git a/png.h b/png.h
index ce24d49..837e34f 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.2.19beta29 - July 20, 2007
+ * libpng version 1.2.19beta30 - July 26, 2007
  * Copyright (c) 1998-2007 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.19beta29 - July 20, 2007: Glenn
+ *  libpng versions 0.97, January 1998, through 1.2.19beta30 - July 26, 2007: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -150,7 +150,7 @@
  *    1.2.17                  13    10217  12.so.0.17[.0]
  *    1.0.26                  10    10026  10.so.0.26[.0]
  *    1.2.18                  13    10218  12.so.0.18[.0]
- *    1.2.19beta1-28          13    10219  12.so.0.19[.0]
+ *    1.2.19beta1-30          13    10219  12.so.0.19[.0]
  *
  *    Henceforth the source version will match the shared-library major
  *    and minor numbers; the shared-library major version number will be
@@ -180,7 +180,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.2.19beta29, July 20, 2007, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.2.19beta30, July 26, 2007, 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:
@@ -292,13 +292,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    July 20, 2007
+ *    July 26, 2007
  *
  *    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.19beta29 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.2.19beta30 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
@@ -354,9 +354,9 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.19beta29"
+#define PNG_LIBPNG_VER_STRING "1.2.19beta30"
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.2.19beta29 - July 20, 2007\n"
+   " libpng version 1.2.19beta30 - July 26, 2007\n"
 
 #define PNG_LIBPNG_VER_SONUM   0
 #define PNG_LIBPNG_VER_DLLNUM  13
@@ -368,7 +368,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  29
+#define PNG_LIBPNG_VER_BUILD  30
 
 /* Release Status */
 #define PNG_LIBPNG_BUILD_ALPHA    1
@@ -1407,7 +1407,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_2_19beta29;
+typedef png_structp version_1_2_19beta30;
 
 typedef png_struct FAR * FAR * png_structpp;
 
diff --git a/pngconf.h b/pngconf.h
index 9fc8355..995a1d0 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.2.19beta29 - July 20, 2007
+ * libpng version 1.2.19beta30 - July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngerror.c b/pngerror.c
index 808e5d3..7c2def1 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.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pnggccrd.c b/pnggccrd.c
index 0e5cf30..0409b38 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -1,9 +1,9 @@
 
 /* pnggccrd.c - mixed C/assembler version of utilities to read a PNG file
  *
- * For Intel x86 CPU (Pentium-MMX or later) and GNU C compiler.
+ * For Intel/AMD x86 or x86-64 CPU (Pentium-MMX or later) and GNU C compiler.
  *
- * Last changed in libpng 1.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998 Intel Corporation
  * Copyright (c) 1999-2002,2007 Greg Roelofs
@@ -23,6 +23,7 @@
  *
  *     http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
  *     http://sam.zoy.org/blog/2007-04-13-shlib-with-non-pic-code-have-inline-assembly-and-pic-mix-well
+ *     http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
  *     http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html
  *     http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
  *     AMD64 Architecture Programmer's Manual, volumes 1 and 5
@@ -224,7 +225,7 @@
  *  - fixed buffer-overrun bug in png_combine_row() C code (non-MMX)
  *
  * 20010808:
- *  - added PNG_THREAD_UNSAFE_OK around code using global variables [GRP]
+ *  - added PNG_THREAD_UNSAFE_OK around code using global variables [GR-P]
  *
  * 20011124:
  *  - fixed missing save of Eflag in png_mmx_support() [Maxim Sobolev]
@@ -237,13 +238,13 @@
  *
  * 20040724:
  *  - more tinkering with clobber list at lines 4529 and 5033 to get it to
- *     compile with gcc 3.4 [GRP]
+ *     compile with gcc 3.4 [GR-P]
  *
  * 20040809:
- *  - added "rim" definitions for CONST4 and CONST6 [GRP]
+ *  - added "rim" definitions for CONST4 and CONST6 [GR-P]
  *
  * 20060303:
- *  - added "OS2" to list of systems that don't need leading underscores [GRP]
+ *  - added "OS2" to list of systems that don't need leading underscores [GR-P]
  *
  * 20060320:
  *  - made PIC-compliant [Christian Aichinger]
@@ -356,7 +357,7 @@
  * 20070618:
  *  - fixed misplaced PNG_THREAD_UNSAFE_OK endif (was missing LOAD_GOT_rbp/
  *     RESTORE_rbp in 32-bit thread-safe case)
- *  - changed all "ifdef *" to "if defined(*)" [GRP]
+ *  - changed all "ifdef *" to "if defined(*)" [GR-P]
  *
  * 20070619:
  *  - rearranged most bitdepth-related case statements to put most frequent
@@ -369,7 +370,7 @@
  *  - removed single libpng-1.2.x PNG_DEBUG dependency on 1.0.x png_struct
  *     member (row_buf_size)
  *  - rearranged pass-related if-blocks in png_do_read_interlace() to put most
- *     frequent cases (4, 5) at top [GRP suggestion]
+ *     frequent cases (4, 5) at top [GR-P suggestion]
  *
  * 20070624-29:
  *  - fixed 64-bit crash bug:  pointers -> rsi/rdi, not esi/edi (switched to
@@ -397,16 +398,25 @@
  *  - added check for (manual) PIC macro to fix OpenBSD crash bug
  *
  * 20070717:
- *  - Copy 6 bytes per pixel, not 4, and use stride of 6, not 4, in the
- *    second loop of interlace processing of 48-bit pixels (GR-P).
+ *  - fixed 48-bit png_combine_row() bug (was acting like 32-bit):  copy 6
+ *     bytes per pixel, not 4, and use stride of 6, not 4, in the second loop
+ *     of interlace processing of 48-bit pixels [GR-P]
+ *
+ * 20070722:
+ *  - fixed 64-bit png_uint_32 bug with MMXLength/FullLength temp vars
+ *
+ * [still broken:  tops of all row-filter blocks (input/output constraints);
+ *  shows up on 64-bit dynamic (-fPIC) version with -O2, especially if debug-
+ *  printfs enabled, but at right edge of odd-width images even if disabled]
  *
  *
  * STILL TO DO:
  *  - fix final thread-unsafe code using stack vars and pointer? (paeth top,
- *     default, bottom only; default, bottom already 5 reg constraints; could
+ *     default, bottom only:  default, bottom already 5 reg constraints; could
  *     replace bpp with pointer and group bpp/patemp/pbtemp/pctemp in array)
  *  - fix ebp/no-reg-constraint inefficiency (avg/paeth/sub top)
  *  - test png_do_read_interlace() 64-bit case (pixel_bytes == 8)
+ *  - write MMX code for 48-bit case (pixel_bytes == 6)
  *  - figure out what's up with 24-bit case (pixel_bytes == 3):
  *     why subtract 8 from width_mmx in the pass 4/5 case?  due to
  *     odd number of bytes? (only width_mmx case) (near line 2335)
@@ -429,13 +439,15 @@
 
 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_USE_PNGGCCRD)
 
-/* for some inexplicable reason, gcc x.x.x on OpenBSD (and elsewhere?) does
+/* for some inexplicable reason, gcc 3.3.5 on OpenBSD (and elsewhere?) does
  * *not* define __PIC__ when the -fPIC option is used, so we have to rely on
  * makefiles and whatnot to define the PIC macro explicitly */
 #if defined(PIC) && !defined(__PIC__)   // (this can/should move to pngconf.h)
 #  define __PIC__
 #endif
 
+#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_USE_PNGGCCRD)
+
 /* if you want/need full thread-safety on x86-64 even when linking statically,
  * comment out the "&& defined(__PIC__)" part here: */
 #if defined(__x86_64__) && defined(__PIC__)
@@ -662,13 +674,12 @@
 
 #if defined(PNG_HAVE_MMX_READ_FILTER_ROW) || defined(PNG_HAVE_MMX_COMBINE_ROW)
 
-// this block is specific to png_read_filter_row_mmx_paeth()
+// this block is specific to png_read_filter_row_mmx_paeth() except for
+// LOAD_GOT_rbp and RESTORE_rbp, which are also used in png_combine_row()
 #if defined(PNG_x86_64_USE_GOTPCREL)
-#  if defined(PNG_HAVE_MMX_READ_FILTER_ROW)
 #  define pa_TEMP                "%%r11d"
 #  define pb_TEMP                "%%r12d"
 #  define pc_TEMP                "%%r13d"
-#  endif
 #  if defined(PNG_CLOBBER_x86_64_REGS_SUPPORTED)  // works as of gcc 3.4.3 ...
 #    define SAVE_r11_r12_r13
 #    define RESTORE_r11_r12_r13
@@ -1893,12 +1904,12 @@
                   "jnc       skip48           \n\t" // if CF = 0
                   "movl      (%3), %%eax      \n\t"
                   "movl      %%eax, (%4)      \n\t"
-                  "movw      4(%3), %%ax      \n\t"
-                  "movw      %%ax, 4(%4)      \n\t"
+                  "movw      4(%3), %%ax      \n\t" // GR-P bugfix 20070717
+                  "movw      %%ax, 4(%4)      \n\t" // GR-P bugfix 20070717
 
                 "skip48:                      \n\t"
-                  "add       $6, %3           \n\t"
-                  "add       $6, %4           \n\t"
+                  "add       $6, %3           \n\t" // GR-P bugfix 20070717
+                  "add       $6, %4           \n\t" // GR-P bugfix 20070717
                   "decl      %%ecx            \n\t"
                   "jnz       secondloop48     \n\t"
 
@@ -3121,16 +3132,14 @@
                      png_memcpy(v, sptr, BPP4);
                      for (j = 0; j < png_pass_inc[pass]; j++)
                      {
-#if defined(PNG_DEBUG) && defined(PNG_1_0_X)  // row_buf_size gone in 1.2.x
-                        if (dp < row || dp+3 > row+png_ptr->row_buf_size)
-                        {
-                           printf("dp out of bounds: row=%10p, dp=%10p, "
-                             "rp=%10p\n", row, dp,
-                              row+png_ptr->row_buf_size);
-                           printf("row_buf_size=%lu\n",
-                              png_ptr->row_buf_size);
-                        }
-#endif
+%-12-%#if defined(PNG_DEBUG) && defined(PNG_1_0_X)  // row_buf_size gone in 1.2.x
+%-12-%                        if (dp < row || dp+3 > row+png_ptr->row_buf_size)
+%-12-%                        {
+%-12-%                           printf("dp out of bounds: row=%10p, dp=%10p, "
+%-12-%                             "rp=%10p\n", row, dp, row+png_ptr->row_buf_size);
+%-12-%                           printf("row_buf_size=%lu\n", png_ptr->row_buf_size);
+%-12-%                        }
+%-12-%#endif
                         png_memcpy(dp, v, BPP4);
                         dp -= BPP4;
                      }
@@ -3221,7 +3230,7 @@
 
 
 #if defined(PNG_HAVE_MMX_READ_FILTER_ROW)
-#ifdef PNG_MMX_READ_FILTER_AVG_SUPPORTED
+#if defined(PNG_MMX_READ_FILTER_AVG_SUPPORTED)
 
 //===========================================================================//
 //                                                                           //
@@ -3235,7 +3244,7 @@
 png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
                             png_bytep prev_row)
 {
-   png_uint_32 FullLength, MMXLength;
+   unsigned FullLength, MMXLength;  // png_uint_32 is actually 64-bit on x86-64
    int bpp;
    int dummy_value_a;
    int dummy_value_c;   // fix 'forbidden register 2 (cx) was spilled' error
@@ -3248,14 +3257,15 @@
    FullLength = row_info->rowbytes;         // number of bytes to filter
 
    __asm__ __volatile__ (
+   "avg_top:                       \n\t"
       SAVE_GOT_ebx
       SAVE_r15
       SAVE_ebp
       // initialize address pointers and offset
-//pre "movl row, %2                \n\t" // edi/rdi:  ptr to Avg(x)
+//pre "movl row, %5                \n\t" // edi/rdi:  ptr to Avg(x)
       "xorl %%ebx, %%ebx           \n\t" // ebx:  x
-//pre "movl prev_row, %1           \n\t" // esi/rsi:  ptr to Prior(x)
-      "mov  %2, " PDX "            \n\t" // copy of row ptr...
+//pre "movl prev_row, %4           \n\t" // esi/rsi:  ptr to Prior(x)
+      "mov  %5, " PDX "            \n\t" // copy of row ptr...
 //pre "subl bpp, " PDX "           \n\t" // (bpp is preloaded into ecx)
       "sub  " PCX "," PDX "        \n\t" // edx/rdx:  ptr to Raw(x-bpp)
 //pre "movl FullLength, %%eax      \n\t" // bring in via eax...
@@ -3265,24 +3275,24 @@
       // Compute the Raw value for the first bpp bytes
       //    Raw(x) = Avg(x) + (Prior(x)/2)
    "avg_rlp:                       \n\t"
-      "movb (%1," PBX ",), %%al    \n\t" // load al with Prior(x)
+      "movb (%4," PBX ",), %%al    \n\t" // load al with Prior(x)
       "incl %%ebx                  \n\t"
       "shrb %%al                   \n\t" // divide by 2
-      "addb -1(%2," PBX ",), %%al  \n\t" // add Avg(x); -1 to offset inc ebx
+      "addb -1(%5," PBX ",), %%al  \n\t" // add Avg(x); -1 to offset inc ebx
 //pre "cmpl bpp, %%ebx             \n\t" // (bpp is preloaded into ecx)
       "cmpl %%ecx, %%ebx           \n\t"
-      "movb %%al, -1(%2," PBX ",)  \n\t" // write Raw(x); -1 to offset inc ebx
+      "movb %%al, -1(%5," PBX ",)  \n\t" // write Raw(x); -1 to offset inc ebx
       "jb avg_rlp                  \n\t" // mov does not affect flags
 
       // get # of bytes to alignment (32-bit mask _would_ be good enough
       // [computing delta], but 32-bit ops are zero-extended on 64-bit, argh)
       // (if swapped edx and ebp, could do 8-bit or 16-bit mask...FIXME?)
-      "mov  %2, " PBP "            \n\t" // take start of row
+      "mov  %5, " PBP "            \n\t" // take start of row
       "add  " PBX "," PBP "        \n\t" // add bpp
       "add  $0xf, " PBP "          \n\t" // add 7+8 to incr past alignment bdry
 //    "andl $0xfffffff8, %%ebp     \n\t" // mask to alignment boundary (32-bit!)
       CLEAR_BOTTOM_3_BITS  PBP    "\n\t" // mask to alignment boundary
-      "sub  %2, " PBP "            \n\t" // subtract row ptr again => ebp =
+      "sub  %5, " PBP "            \n\t" // subtract row ptr again => ebp =
       "jz avg_go                   \n\t" //  target value of ebx at alignment
 
       "xorl %%ecx, %%ecx           \n\t"
@@ -3292,14 +3302,14 @@
       //    Raw(x) = Avg(x) + ((Raw(x-bpp) + Prior(x))/2)
    "avg_lp1:                       \n\t"
       "xorl %%eax, %%eax           \n\t"
-      "movb (%1," PBX ",), %%cl    \n\t" // load cl with Prior(x)
+      "movb (%4," PBX ",), %%cl    \n\t" // load cl with Prior(x)
       "movb (" PDX "," PBX ",), %%al \n\t" // load al with Raw(x-bpp)
       "addw %%cx, %%ax             \n\t"
       "incl %%ebx                  \n\t"
       "shrw %%ax                   \n\t" // divide by 2
-      "addb -1(%2," PBX ",), %%al  \n\t" // add Avg(x); -1 to offset inc ebx
+      "addb -1(%5," PBX ",), %%al  \n\t" // add Avg(x); -1 to offset inc ebx
       "cmpl %%ebp, %%ebx           \n\t" // check if at alignment boundary
-      "movb %%al, -1(%2," PBX ",)  \n\t" // write Raw(x); -1 to offset inc ebx
+      "movb %%al, -1(%5," PBX ",)  \n\t" // write Raw(x); -1 to offset inc ebx
       "jb avg_lp1                  \n\t" // repeat until at alignment boundary
 
    "avg_go:                        \n\t"
@@ -3314,15 +3324,32 @@
       RESTORE_r15
       RESTORE_GOT_ebx
 
-      : "=c" (MMXLength),                // output regs
-        "=S" (dummy_value_S),
-        "=D" (dummy_value_D),
-        "=a" (diff)
+// "There is no way for you to specify that an input operand is modified
+// without also specifying it as an output operand."  [makes sense]
 
-      : "0" (bpp),         // ecx        // input regs
-        "1" (prev_row),    // esi/rsi
-        "2" (row),         // edi/rdi
-        "3" (FullLength)   // eax
+// "Unless an output operand has the `&' constraint modifier, GCC may
+// allocate it in the same register as an unrelated input operand, on the
+// assumption the inputs are consumed before the outputs are produced."
+// [trying to _force_ this]
+
+// "`='   Means that this operand is write-only for this instruction:
+//        the previous value is discarded and replaced by output data."
+//        [operand == variable name, presumably]
+
+      // output regs
+      // these are operands 0-1 (originally 0-3):
+      : "=c" (MMXLength),      // %0 -> %0
+        "=a" (diff)            // %3 -> %1
+//      "=S" (dummy_value_S),  // %1 -> GONE
+//      "=D" (dummy_value_D),  // %2 -> GONE
+
+      // input regs
+      // these are operands 2-5 (originally 4-7); two of their constraints say
+      // they must go in same places as operands 0-1 (originally 0-3) above:
+      : "0" (bpp),         // %4 -> %2 ecx
+        "1" (FullLength),  // %7 -> %3 eax
+        "S" (prev_row),    // %5 -> %4 esi/rsi
+        "D" (row)          // %6 -> %5 edi/rdi
 
       : "%edx"                           // clobber list
         _CLOBBER_r15
@@ -3962,13 +3989,14 @@
    );
 
 } /* end png_read_filter_row_mmx_avg() */
+
 #endif /* PNG_MMX_READ_FILTER_AVG_SUPPORTED */
 
 
 
+#if defined(PNG_MMX_READ_FILTER_PAETH_SUPPORTED)
 #if defined(PNG_x86_64_USE_GOTPCREL) || defined(PNG_THREAD_UNSAFE_OK)
 
-#ifdef PNG_MMX_READ_FILTER_PAETH_SUPPORTED
 //===========================================================================//
 //                                                                           //
 //         P N G _ R E A D _ F I L T E R _ R O W _ M M X _ P A E T H         //
@@ -3981,7 +4009,7 @@
 png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
                               png_bytep prev_row)
 {
-   png_uint_32 FullLength, MMXLength;
+   unsigned FullLength, MMXLength;  // png_uint_32 is actually 64-bit on x86-64
    int bpp;
    int dummy_value_a;
    int dummy_value_c;   // fix 'forbidden register 2 (cx) was spilled' error
@@ -5075,14 +5103,15 @@
    );
 
 } /* end png_read_filter_row_mmx_paeth() */
-#endif /* PNG_MMX_READ_FILTER_PAETH_SUPPORTED */
 
 #endif // PNG_x86_64_USE_GOTPCREL || PNG_THREAD_UNSAFE_OK
+#endif /* PNG_MMX_READ_FILTER_PAETH_SUPPORTED */
 
 
 
 
-#ifdef PNG_MMX_READ_FILTER_SUB_SUPPORTED
+#if defined(PNG_MMX_READ_FILTER_SUB_SUPPORTED)
+
 //===========================================================================//
 //                                                                           //
 //           P N G _ R E A D _ F I L T E R _ R O W _ M M X _ S U B           //
@@ -5094,7 +5123,7 @@
 static void /* PRIVATE */
 png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
 {
-   png_uint_32 FullLength, MMXLength;
+   unsigned FullLength, MMXLength;  // png_uint_32 is actually 64-bit on x86-64
    int bpp;
    int dummy_value_a;
    int dummy_value_c;
@@ -5564,12 +5593,14 @@
    );
 
 } // end of png_read_filter_row_mmx_sub()
+
 #endif /* PNG_MMX_READ_FILTER_SUB_SUPPORTED */
 
 
 
 
-#ifdef PNG_MMX_READ_FILTER_UP_SUPPORTED
+#if defined(PNG_MMX_READ_FILTER_UP_SUPPORTED)
+
 //===========================================================================//
 //                                                                           //
 //            P N G _ R E A D _ F I L T E R _ R O W _ M M X _ U P            //
@@ -5582,7 +5613,7 @@
 png_read_filter_row_mmx_up(png_row_infop row_info, png_bytep row,
                            png_bytep prev_row)
 {
-   png_uint_32 len;
+   unsigned len;        // png_uint_32 is actually 64-bit on x86-64
    int dummy_value_d;   // fix 'forbidden register 3 (dx) was spilled' error
    png_bytep dummy_value_S;
    png_bytep dummy_value_D;
@@ -5715,6 +5746,7 @@
    );
 
 } // end of png_read_filter_row_mmx_up()
+
 #endif /* PNG_MMX_READ_FILTER_UP_SUPPORTED */
 
 
@@ -5726,7 +5758,6 @@
 /*                                                                           */
 /*===========================================================================*/
 
-
 /* Optimized png_read_filter_row routines */
 
 void /* PRIVATE */
diff --git a/pngpread.c b/pngpread.c
index 1e8cf6f..dfc89ea 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.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index 4d64caa..3e22b84 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * Last changed in libpng 1.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 751eb28..7583ca1 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.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index 611edff..4093abc 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * Last changed in libpng 1.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtest.c b/pngtest.c
index 225b8e3..0b0e139 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1548,4 +1548,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_19beta29 your_png_h_is_not_version_1_2_19beta29;
+typedef version_1_2_19beta30 your_png_h_is_not_version_1_2_19beta30;
diff --git a/pngvcrd.c b/pngvcrd.c
index 82645fc..714e521 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -3,7 +3,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * Last changed in libpng 1.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
@@ -22,6 +22,8 @@
  *
  * [runtime MMX configuration, GRR 20010102]
  *
+ * [Copy 6 bytes per pixel, not 4, and use stride of 6, not 4, in the
+ *  second loop of interlace processing of 48-bit pixels, GR-P 20070717]
  */
 
 #define PNG_INTERNAL
diff --git a/pngwutil.c b/pngwutil.c
index 1be0368..6bf1754 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * Last changed in libpng 1.2.19 July 20, 2007
+ * Last changed in libpng 1.2.19 July 26, 2007
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2007 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index fd3aac9..da2d84d 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -175,7 +175,7 @@
 
 # SET UP LINKS
 set_target_properties(${PNG_LIB_NAME} PROPERTIES
-#    VERSION 0.${PNGLIB_RELEASE}.1.2.19beta29
+#    VERSION 0.${PNGLIB_RELEASE}.1.2.19beta30
      VERSION 0.${PNGLIB_RELEASE}.0
      SOVERSION 0
      CLEAN_DIRECT_OUTPUT 1)
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index 9ad235a..e6d8c81 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -8,7 +8,7 @@
 
 # Modeled after libxml-config.
 
-version=1.2.19beta29
+version=1.2.19beta30
 prefix=""
 libdir=""
 libs=""
diff --git a/scripts/libpng.pc-configure.in b/scripts/libpng.pc-configure.in
index a03ea96..d00607f 100644
--- a/scripts/libpng.pc-configure.in
+++ b/scripts/libpng.pc-configure.in
@@ -5,6 +5,6 @@
 
 Name: libpng
 Description: Loads and saves PNG files
-Version: 1.2.19beta29
+Version: 1.2.19beta30
 Libs: -L${libdir} -lpng12
 Cflags: -I${includedir} @LIBPNG_NO_MMX@
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 6810a9f..338143a 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.2.19beta29
+Version: 1.2.19beta30
 Libs: -L${libdir} -lpng12
 Cflags: -I${includedir}
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index 8b8301b..de325d2 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index c24cca4..ef03d9e 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index 39a77f4..9c906c3 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -20,7 +20,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 14cde95..4b9b8c7 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 26c60bf..ad604fe 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -77,7 +77,7 @@
 LIBNAME = libpng12
 PNGMAJ = 0
 CYGDLL = 12
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 SHAREDLIB=cygpng$(CYGDLL).dll
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index cc1d308..60f5016 100644
--- a/scripts/makefile.darwin
+++ b/scripts/makefile.darwin
@@ -19,7 +19,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index db4480b..1bd7157 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -5,7 +5,7 @@
 
 # Library name:
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
diff --git a/scripts/makefile.elf b/scripts/makefile.elf
index 9df5bef..3fd16af 100644
--- a/scripts/makefile.elf
+++ b/scripts/makefile.elf
@@ -12,7 +12,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 3cc2c13..c639248 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -16,7 +16,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64
index 8d61711..81c10c8 100644
--- a/scripts/makefile.hp64
+++ b/scripts/makefile.hp64
@@ -18,7 +18,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index 14b4466..767639e 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index 7cdc6df..b0095f0 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -18,7 +18,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index dc4bd08..7eee4eb 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -6,7 +6,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.mingw b/scripts/makefile.mingw
index beb252c..b45727e 100644
--- a/scripts/makefile.mingw
+++ b/scripts/makefile.mingw
@@ -78,7 +78,7 @@
 LIBNAME = libpng12
 PNGMAJ = 0
 MINGDLL = 12
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 SHAREDLIB=libpng$(MINGDLL).dll
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index cc6cc79..f56e93a 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -14,7 +14,7 @@
 
 LIB=	png12
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.2.19beta29
+SHLIB_MINOR=	1.2.19beta30
 SRCS=	pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
 		pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 		pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index e226d42..b6528ac 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -14,7 +14,7 @@
 
 LIB=	png
 SHLIB_MAJOR=	3
-SHLIB_MINOR=	1.2.19beta29
+SHLIB_MINOR=	1.2.19beta30
 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.nommx b/scripts/makefile.nommx
index 5ab0de1..d3d1326 100644
--- a/scripts/makefile.nommx
+++ b/scripts/makefile.nommx
@@ -7,7 +7,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd
index 590f520..36786aa 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -8,7 +8,7 @@
 MANDIR= ${PREFIX}/man/cat
 
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.2.19beta29
+SHLIB_MINOR=	1.2.19beta30
 
 LIB=	png
 SRCS=	png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index 152e901..dad5f88 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -9,7 +9,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 2239739..e8496f4 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -6,7 +6,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index 110216a..5eda104 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -6,7 +6,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index 9100409..2ce38c5 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -8,7 +8,7 @@
 
 # Library name:
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 8e0dcc1..987b967 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.solaris-x86 b/scripts/makefile.solaris-x86
index 8256d20..28eba2f 100644
--- a/scripts/makefile.solaris-x86
+++ b/scripts/makefile.solaris-x86
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta29
+PNGMIN = 1.2.19beta30
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 9aef73e..45276c0 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
 ; PNG.LIB module definition file for OS/2
 ;----------------------------------------
 
-; Version 1.2.19beta29
+; Version 1.2.19beta30
 
 LIBRARY		PNG
 DESCRIPTION	"PNG image compression library for OS/2"
diff --git a/scripts/pngw32.def b/scripts/pngw32.def
index 219603e..91280ec 100644
--- a/scripts/pngw32.def
+++ b/scripts/pngw32.def
@@ -5,7 +5,7 @@
 LIBRARY
 
 EXPORTS
-;Version 1.2.19beta29
+;Version 1.2.19beta30
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
