Imported from libpng-1.2.19beta24.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index e000f63..32821a9 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.2.19beta23 - July 10, 2007
+Libpng 1.2.19beta24 - July 14, 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.19beta23.tar.gz
-   libpng-1.2.19beta23.tar.bz2
+   libpng-1.2.19beta24.tar.gz
+   libpng-1.2.19beta24.tar.bz2
 
 Source files with LF line endings (for Unix/Linux) without the
 "configure" script
 
-   libpng-1.2.19beta23-no-config.tar.gz
-   libpng-1.2.19beta23-no-config.tar.bz2
+   libpng-1.2.19beta24-no-config.tar.gz
+   libpng-1.2.19beta24-no-config.tar.bz2
 
 Source files with CRLF line endings (for Windows), without the
 "configure" script
 
-   lp1219b23.zip
-   lp1219b23.tar.bz2
+   lp1219b24.zip
+   lp1219b24.tar.bz2
 
 Project files
 
-   libpng-1.2.19beta23-project-netware.zip
-   libpng-1.2.19beta23-project-wince.zip
+   libpng-1.2.19beta24-project-netware.zip
+   libpng-1.2.19beta24-project-wince.zip
 
 Other information:
 
-   libpng-1.2.19beta23-README.txt
-   libpng-1.2.19beta23-KNOWNBUGS.txt
-   libpng-1.2.19beta23-LICENSE.txt
-   libpng-1.2.19beta23-Y2K-compliance.txt
+   libpng-1.2.19beta24-README.txt
+   libpng-1.2.19beta24-KNOWNBUGS.txt
+   libpng-1.2.19beta24-LICENSE.txt
+   libpng-1.2.19beta24-Y2K-compliance.txt
 
 Changes since the last public release (1.2.18):
 
@@ -134,6 +134,10 @@
   Make sure __PIC__ is defined in pnggccrd.c when PIC is defined.
   Make PNG_NO_MMX_CODE the default on x86_64 GNUC platforms.
 
+version 1.2.19beta24 [July 14, 2007]
+  Added PNG_NO_READ_FILTER, PNG_NO_WRITE_FILTER, PNG_NO_WARNING macros.
+  Added contrib/pngminim to demonstrate building minimal encoder and decoder
+
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 
 (subscription required; visit 
diff --git a/CHANGES b/CHANGES
index afc2476..97deb25 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1827,6 +1827,10 @@
   Make sure __PIC__ is defined in pnggccrd.c when PIC is defined.
   Require gcc-4.1 or better to use PNG_HAVE_MMX_FILTER_ROW on x86_64 platforms
 
+version 1.2.19beta24 [July 14, 2007]
+  Added PNG_NO_READ_FILTER, PNG_NO_WRITE_FILTER, PNG_NO_WARNING macros.
+  Added contrib/pngminim to demonstrate building minimal encoder and decoder
+
 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 fc6cc24..243b80d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.2.19beta23 - July 10, 2007
+Installing libpng version 1.2.19beta24 - July 14, 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.19beta23" or "lpng109" and "zlib-1.2.1"
+might be called "libpng-1.2.19beta24" 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.19beta23)
+                       gcc, creates libpng12.so.0.1.2.19beta24)
  makefile.linux    =>  Linux/ELF makefile
-                       (gcc, creates libpng12.so.0.1.2.19beta23)
+                       (gcc, creates libpng12.so.0.1.2.19beta24)
  makefile.gcmmx    =>  Linux/ELF makefile
-                       (gcc, creates libpng12.so.0.1.2.19beta23,
+                       (gcc, creates libpng12.so.0.1.2.19beta24,
                        uses assembler code tuned for Intel MMX platform)
  makefile.nommx    =>  Linux/ELF makefile
-                       (gcc, creates libpng12.so.0.1.2.19beta23
+                       (gcc, creates libpng12.so.0.1.2.19beta24
                        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.19beta23)
+                       creates libpng12.so.0.1.2.19beta24)
  makefile.sunos    =>  Sun makefile
  makefile.solaris  =>  Solaris 2.X makefile (gcc,
-                       creates libpng12.so.0.1.2.19beta23)
+                       creates libpng12.so.0.1.2.19beta24)
  makefile.solaris-x86 =>  Solaris/intelMMX 2.X makefile (gcc,
-                       creates libpng12.so.0.1.2.19beta23)
+                       creates libpng12.so.0.1.2.19beta24)
  makefile.so9      =>  Solaris 9 makefile (gcc,
-                       creates libpng12.so.0.1.2.19beta23)
+                       creates libpng12.so.0.1.2.19beta24)
  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 929dce5..e99ca56 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
 
-Known bugs in libpng version 1.2.19beta23
+Known bugs in libpng version 1.2.19beta24
 
 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 98698ad..0bfc6ae 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.19beta23, July 10, 2007, are
+libpng versions 1.2.6, August 15, 2004, through 1.2.19beta24, July 14, 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 10, 2007
+July 14, 2007
diff --git a/README b/README
index 77bd039..43c719c 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.2.19beta23 - July 10, 2007 (shared library 12.0)
+README for libpng version 1.2.19beta24 - July 14, 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.19beta23)
+                            gcc, creates libpng12.so.0.1.2.19beta24)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta23)
+                            (gcc, creates libpng12.so.0.1.2.19beta24)
        makefile.gcmmx   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta23,
+                            (gcc, creates libpng12.so.0.1.2.19beta24,
                             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.19beta23)
+                            (gcc, creates libpng12.so.0.1.2.19beta24)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta23)
+                            (gcc, creates libpng12.so.0.1.2.19beta24)
        makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng12.so.0.1.2.19beta23)
+                            (gcc, creates libpng12.so.0.1.2.19beta24)
        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 420c909..8d4561f 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      July 10, 2007
+      July 14, 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.19beta23 are Y2K compliant.  It is my belief that earlier
+      upward through 1.2.19beta24 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 46de2fa..813af2d 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.19beta23.
+# Generated by GNU Autoconf 2.61 for libpng 1.2.19beta24.
 #
 # 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.19beta23'
-PACKAGE_STRING='libpng 1.2.19beta23'
+PACKAGE_VERSION='1.2.19beta24'
+PACKAGE_STRING='libpng 1.2.19beta24'
 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.19beta23 to adapt to many kinds of systems.
+\`configure' configures libpng 1.2.19beta24 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.19beta23:";;
+     short | recursive ) echo "Configuration of libpng 1.2.19beta24:";;
    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.19beta23
+libpng configure 1.2.19beta24
 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.19beta23, which was
+It was created by libpng $as_me 1.2.19beta24, 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.19beta23'
+ VERSION='1.2.19beta24'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2440,7 +2440,7 @@
 
 
 
-PNGLIB_VERSION=1.2.19beta23
+PNGLIB_VERSION=1.2.19beta24
 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.19beta23, which was
+This file was extended by libpng $as_me 1.2.19beta24, 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.19beta23
+libpng config.status 1.2.19beta24
 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 96d55b0..cdde7cc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,12 +18,12 @@
 
 dnl Version number stuff here:
 
-AC_INIT([libpng], [1.2.19beta23], [png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng], [1.2.19beta24], [png-mng-implement@lists.sourceforge.net])
 AM_INIT_AUTOMAKE
 dnl stop configure from automagically running automake
 AM_MAINTAINER_MODE
 
-PNGLIB_VERSION=1.2.19beta23
+PNGLIB_VERSION=1.2.19beta24
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=2
 PNGLIB_RELEASE=19
diff --git a/contrib/pngminim/decoder/README b/contrib/pngminim/decoder/README
new file mode 100644
index 0000000..4f71082
--- /dev/null
+++ b/contrib/pngminim/decoder/README
@@ -0,0 +1,6 @@
+This demonstrates the use of PNG_USER_CONFIG and pngusr.h
+
+To build a minimal read-only decoder, run
+    gather.sh  # to collect needed files from pngminus, libpng, and zlib
+    make -f makefile.std
+ 
diff --git a/contrib/pngminim/decoder/gather.sh b/contrib/pngminim/decoder/gather.sh
new file mode 100755
index 0000000..824b1a8
--- /dev/null
+++ b/contrib/pngminim/decoder/gather.sh
@@ -0,0 +1,8 @@
+cp ../../pngminus/png2pnm.c pngm2pnm.c
+cp ../../../*.h .
+cp ../../../*.c .
+rm example.c pnggccrd.c pngvcrd.c pngtest.c
+# change the following 2 lines if zlib is somewhere else
+cp ../../../../zlib/*.h .
+cp ../../../../zlib/*.c .
+rm minigzip.c example.c compress.c deflate.c
diff --git a/contrib/pngminim/decoder/makefile.std b/contrib/pngminim/decoder/makefile.std
new file mode 100644
index 0000000..b3f7142
--- /dev/null
+++ b/contrib/pngminim/decoder/makefile.std
@@ -0,0 +1,44 @@
+# Makefile for PngMinus (pngm2pnm)
+# Linux / Unix
+
+#CC=cc
+CC=gcc
+LD=$(CC)
+
+RM=rm -f
+
+CFLAGS=-DPNG_USER_CONFIG -DNO_GZCOMPRESS -DNO_GZIP \
+       -DdeflateParams\(a,b,c\)=Z_OK -I. -O1
+
+C=.c
+O=.o
+L=.a
+E=
+
+ZOBJS  = adler32$(O) crc32$(O) gzio$(O) \
+	 infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
+	 trees$(O) uncompr$(O) zutil$(O)
+
+OBJS  = pngm2pnm$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
+	pngpread$(O) pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) \
+	pngset$(O) pngtrans$(O)  $(ZOBJS)
+
+# implicit make rules -------------------------------------------------------
+
+.c$(O): png.h pngconf.h pngusr.h zlib.h
+	$(CC) -c $(CFLAGS) $<
+
+# dependencies
+
+all: pngm2pnm$(E)
+
+pngm2pnm$(E): $(OBJS)
+	$(LD) -o pngm2pnm$(E) $(OBJS)
+	strip pngm2pnm$(E)
+
+clean:
+	$(RM) pngm2pnm$(O)
+	$(RM) pngm2pnm$(E)
+	$(RM) $(OBJS)
+
+# End of makefile for pngm2pnm
diff --git a/contrib/pngminim/decoder/pngusr.h b/contrib/pngminim/decoder/pngusr.h
new file mode 100644
index 0000000..e138f37
--- /dev/null
+++ b/contrib/pngminim/decoder/pngusr.h
@@ -0,0 +1,65 @@
+/* minrdpngconf.h: headers to make a minimal png-read-only library
+ * For conditions of distribution and use, see copyright notice in png.h
+ * Copyright (c) 2007 Glenn Randers-Pehrson
+ * Derived from pngcrush.h, Copyright 1998-2007, Glenn Randers-Pehrson
+ */
+
+#ifndef MINRDPNGCONF_H
+#define MINRDPNGCONF_H
+
+/* #define PNG_NO_READ_FILTER */
+
+#define PNG_NO_GLOBAL_ARRAYS
+
+#define PNG_NO_WARNINGS
+#define png_warning(s1,s2) ""
+#define png_chunk_warning(s1,s2) ""
+
+#define PNG_NO_MMX_CODE
+#define PNG_NO_OPTIMIZED_CODE
+#define PNG_NO_READ_GAMMA
+#define PNG_NO_READ_BACKGROUND
+#define PNG_NO_READ_DITHER
+#define PNG_NO_READ_INVERT
+#define PNG_NO_READ_SHIFT
+#define PNG_NO_READ_PACK
+#define PNG_NO_READ_PACKSWAP
+#define PNG_NO_READ_FILLER
+#define PNG_NO_READ_SWAP_ALPHA
+#define PNG_NO_READ_INVERT_ALPHA
+#define PNG_NO_READ_RGB_TO_GRAY
+#define PNG_NO_READ_USER_TRANSFORM
+#define PNG_NO_READ_bKGD
+#define PNG_NO_READ_cHRM
+#define PNG_NO_READ_gAMA
+#define PNG_NO_READ_hIST
+#define PNG_NO_READ_iCCP
+#define PNG_NO_READ_pCAL
+#define PNG_NO_READ_pHYs
+#define PNG_NO_READ_sBIT
+#define PNG_NO_READ_sCAL
+#define PNG_NO_READ_sPLT
+#define PNG_NO_READ_TEXT
+#define PNG_NO_READ_tIME
+#define PNG_NO_READ_UNKNOWN_CHUNKS
+#define PNG_NO_READ_USER_CHUNKS
+#define PNG_NO_READ_EMPTY_PLTE
+#define PNG_NO_READ_OPT_PLTE
+#define PNG_NO_READ_STRIP_ALPHA
+#define PNG_NO_READ_oFFs
+
+#define PNG_NO_WRITE_SUPPORTED
+
+#define PNG_NO_INFO_IMAGE
+#define PNG_NO_USER_MEM
+#define PNG_NO_FIXED_POINT_SUPPORTED
+#define PNG_NO_MNG_FEATURES
+#define PNG_NO_USER_TRANSFORM_PTR
+#define PNG_NO_HANDLE_AS_UNKNOWN
+#define PNG_NO_CONSOLE_IO
+#define PNG_NO_ZALLOC_ZERO
+#define PNG_NO_ERROR_NUMBERS
+#define PNG_NO_EASY_ACCESS
+#define PNG_NO_PROGRESSIVE_READ_SUPPORTED
+
+#endif /* MINRDPNGCONF_H */
diff --git a/contrib/pngminim/encoder/README b/contrib/pngminim/encoder/README
new file mode 100644
index 0000000..4a68fc8
--- /dev/null
+++ b/contrib/pngminim/encoder/README
@@ -0,0 +1,6 @@
+This demonstrates the use of PNG_USER_CONFIG and pngusr.h
+
+To build a minimal write-only encoder, run
+    gather.sh  # to collect needed files from pngminus, libpng, and zlib
+    make -f makefile.std
+ 
diff --git a/contrib/pngminim/encoder/dummy_inflate.c b/contrib/pngminim/encoder/dummy_inflate.c
new file mode 100644
index 0000000..1422edb
--- /dev/null
+++ b/contrib/pngminim/encoder/dummy_inflate.c
@@ -0,0 +1,27 @@
+#include "zlib.h"
+
+int ZEXPORT inflate(strm, flush)
+z_streamp strm;
+int flush;
+{ return Z_OK ; }
+
+int ZEXPORT inflateReset(strm)
+z_streamp strm;
+{ return Z_OK ; }
+
+int ZEXPORT inflateEnd(strm)
+z_streamp strm;
+{ return Z_STREAM_ERROR ; }
+
+int ZEXPORT inflateInit_(strm, version, stream_size)
+z_streamp strm;
+const char *version;
+int stream_size;
+{ return Z_OK ; }
+
+int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
+z_streamp strm;
+int windowBits;
+const char *version;
+int stream_size;
+{ return Z_STREAM_ERROR ; }
diff --git a/contrib/pngminim/encoder/gather.sh b/contrib/pngminim/encoder/gather.sh
new file mode 100755
index 0000000..0abb2c7
--- /dev/null
+++ b/contrib/pngminim/encoder/gather.sh
@@ -0,0 +1,9 @@
+cp ../../pngminus/pnm2png.c pnm2pngm.c
+cp ../../../*.h .
+cp ../../../*.c .
+rm example.c pnggccrd.c pngvcrd.c pngtest.c
+# Change the next 2 lines if zlib is somewhere else.
+cp ../../../../zlib/*.h .
+cp ../../../../zlib/*.c .
+rm inf*.[ch]
+rm minigzip.c example.c
diff --git a/contrib/pngminim/encoder/makefile.std b/contrib/pngminim/encoder/makefile.std
new file mode 100644
index 0000000..0e459ca
--- /dev/null
+++ b/contrib/pngminim/encoder/makefile.std
@@ -0,0 +1,44 @@
+# Makefile for PngMinus (pnm2pngm)
+# Linux / Unix
+
+#CC=cc
+CC=gcc
+LD=$(CC)
+
+RM=rm -f
+
+CFLAGS=-DPNG_USER_CONFIG -DNO_GZIP -I. -O1
+
+C=.c
+O=.o
+L=.a
+E=
+
+ZOBJS  = adler32$(O) compress$(O) crc32$(O) deflate$(O) gzio$(O) \
+	 dummy_inflate$(O) \
+	 trees$(O) uncompr$(O) zutil$(O)
+
+OBJS  = pnm2pngm$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
+	pngpread$(O) pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) \
+	pngset$(O) pngtrans$(O) pngwio$(O) pngwrite$(O) \
+	pngwtran$(O) pngwutil$(O) $(ZOBJS)
+
+# implicit make rules -------------------------------------------------------
+
+.c$(O): png.h pngconf.h pngusr.h zlib.h
+	$(CC) -c $(CFLAGS) $<
+
+# dependencies
+
+all: pnm2pngm$(E)
+
+pnm2pngm$(E): $(OBJS)
+	$(LD) -o pnm2pngm$(E) $(OBJS)
+	strip pnm2pngm$(E)
+
+clean:
+	$(RM) pnm2pngm$(O)
+	$(RM) pnm2pngm$(E)
+	$(RM) $(OBJS)
+
+# End of makefile for pnm2pngm
diff --git a/contrib/pngminim/encoder/pngusr.h b/contrib/pngminim/encoder/pngusr.h
new file mode 100644
index 0000000..be279a0
--- /dev/null
+++ b/contrib/pngminim/encoder/pngusr.h
@@ -0,0 +1,63 @@
+/* minwrpngconf.h: headers to make a minimal png-write-only library
+ * For conditions of distribution and use, see copyright notice in png.h
+ * Copyright (c) 2007 Glenn Randers-Pehrson
+ * Derived from pngcrush.h, Copyright 1998-2007, Glenn Randers-Pehrson
+ */
+
+#ifndef MINWRPNGCONF_H
+#define MINWRPNGCONF_H
+
+#define PNG_NO_GLOBAL_ARRAYS
+
+#define PNG_NO_READ_SUPPORTED
+
+#define PNG_NO_WARNINGS
+#define png_warning(s1,s2) ""
+#define png_chunk_warning(s1,s2) ""
+
+#define PNG_NO_WRITE_BACKGROUND
+#define PNG_NO_WRITE_GAMMA
+#define PNG_NO_WRITE_DITHER
+#define PNG_NO_WRITE_INVERT
+#define PNG_NO_WRITE_SHIFT
+#define PNG_NO_WRITE_PACK
+#define PNG_NO_WRITE_PACKSWAP
+#define PNG_NO_WRITE_FILLER
+#define PNG_NO_WRITE_SWAP_ALPHA
+#define PNG_NO_WRITE_INVERT_ALPHA
+#define PNG_NO_WRITE_RGB_TO_GRAY
+#define PNG_NO_WRITE_USER_TRANSFORM
+#define PNG_NO_WRITE_bKGD
+#define PNG_NO_WRITE_cHRM
+#define PNG_NO_WRITE_gAMA
+#define PNG_NO_WRITE_sRGB
+#define PNG_NO_WRITE_hIST
+#define PNG_NO_WRITE_iCCP
+#define PNG_NO_WRITE_oFFs
+#define PNG_NO_WRITE_pCAL
+#define PNG_NO_WRITE_pHYs
+#define PNG_NO_WRITE_sBIT
+#define PNG_NO_WRITE_sCAL
+#define PNG_NO_WRITE_sPLT
+#define PNG_NO_WRITE_TEXT
+#define PNG_NO_WRITE_tIME
+#define PNG_NO_WRITE_UNKNOWN_CHUNKS
+#define PNG_NO_WRITE_USER_CHUNKS
+#define PNG_NO_WRITE_EMPTY_PLTE
+#define PNG_NO_WRITE_OPT_PLTE
+#define PNG_NO_WRITE_FILTER
+#define PNG_NO_WRITE_WEIGHTED_FILTER
+#define PNG_NO_WRITE_INTERLACING_SUPPORTED  /* effective libpng-1.3.0 */
+
+#define PNG_NO_INFO_IMAGE
+#define PNG_NO_USER_MEM
+#define PNG_NO_FIXED_POINT_SUPPORTED
+#define PNG_NO_MNG_FEATURES
+#define PNG_NO_USER_TRANSFORM_PTR
+#define PNG_NO_HANDLE_AS_UNKNOWN
+#define PNG_NO_CONSOLE_IO
+#define PNG_NO_ZALLOC_ZERO
+#define PNG_NO_ERROR_NUMBERS
+#define PNG_NO_EASY_ACCESS
+
+#endif /* MINWRPNGCONF_H */
diff --git a/libpng-1.2.19beta23.txt b/libpng-1.2.19beta24.txt
similarity index 99%
rename from libpng-1.2.19beta23.txt
rename to libpng-1.2.19beta24.txt
index 897c3f2..dfcb121 100644
--- a/libpng-1.2.19beta23.txt
+++ b/libpng-1.2.19beta24.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.19beta23 - July 10, 2007
+ libpng version 1.2.19beta24 - July 14, 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 10, 2007
+July 14, 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.19beta23 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.19beta24 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 202c64a..70dacaf 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "July 10, 2007"
+.TH LIBPNG 3 "July 14, 2007"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta23
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta24
 .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.19beta23 - July 10, 2007
+ libpng version 1.2.19beta24 - July 14, 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 10, 2007
+July 14, 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.19beta23 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.19beta24 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
@@ -3582,7 +3582,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.2.19beta23 - July 10, 2007:
+Libpng version 1.2.19beta24 - July 14, 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.19beta23, July 10, 2007, are
+libpng versions 1.2.6, August 15, 2004, through 1.2.19beta24, July 14, 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 10, 2007
+July 14, 2007
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index 40731e5..f71ce22 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "July 10, 2007"
+.TH LIBPNGPF 3 "July 14, 2007"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta23
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta24
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index aa8d834..33e4366 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "July 10, 2007"
+.TH PNG 5 "July 14, 2007"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index bdd9fbe..4d533ec 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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_19beta23 Your_png_h_is_not_version_1_2_19beta23;
+typedef version_1_2_19beta24 Your_png_h_is_not_version_1_2_19beta24;
 
 /* 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.19beta23 - July 10, 2007\n\
+   return ((png_charp) "\n libpng version 1.2.19beta24 - July 14, 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 92c5287..f6249b4 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.2.19beta23 - July 10, 2007
+ * libpng version 1.2.19beta24 - July 14, 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.19beta23 - July 10, 2007: Glenn
+ *  libpng versions 0.97, January 1998, through 1.2.19beta24 - July 14, 2007: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -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.19beta23, July 10, 2007, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.2.19beta24, July 14, 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 10, 2007
+ *    July 14, 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.19beta23 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.2.19beta24 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.19beta23"
+#define PNG_LIBPNG_VER_STRING "1.2.19beta24"
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.2.19beta23 - July 10, 2007\n"
+   " libpng version 1.2.19beta24 - July 14, 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  23
+#define PNG_LIBPNG_VER_BUILD  24
 
 /* 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_19beta23;
+typedef png_structp version_1_2_19beta24;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2063,13 +2063,17 @@
 extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr,
    png_const_charp error_message));
 
+#ifndef PNG_NO_WARNINGS
 /* Non-fatal error in libpng.  Can continue, but may have a problem. */
 extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr,
    png_const_charp warning_message));
 
+#ifdef PNG_READ_SUPPORTED
 /* Non-fatal error in libpng, chunk name is prepended to message. */
 extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
    png_const_charp warning_message));
+#endif /* PNG_READ_SUPPORTED */
+#endif /* PNG_NO_WARNINGS */
 
 /* The png_set_<chunk> functions are for storing values in the png_info_struct.
  * Similarly, the png_get_<chunk> calls are used to read values from the
diff --git a/pngconf.h b/pngconf.h
index 2e9c9ee..c2c8086 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.2.19beta23 - July 10, 2007
+ * libpng version 1.2.19beta24 - July 14, 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 d65d30e..d4ae453 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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)
@@ -20,9 +20,11 @@
 static void /* PRIVATE */
 png_default_error PNGARG((png_structp png_ptr,
   png_const_charp error_message));
+#ifndef PNG_NO_WARNINGS
 static void /* PRIVATE */
 png_default_warning PNGARG((png_structp png_ptr,
   png_const_charp warning_message));
+#endif /* PNG_NO_WARNINGS */
 
 /* This function is called whenever there is a fatal error.  This function
  * should not be changed.  If there is a need to handle errors differently,
@@ -76,6 +78,7 @@
    png_default_error(png_ptr, error_message);
 }
 
+#ifndef PNG_NO_WARNINGS
 /* This function is called whenever there is a non-fatal error.  This function
  * should not be changed.  If there is a need to handle warnings differently,
  * you should supply a replacement warning function and use
@@ -105,6 +108,7 @@
    else
       png_default_warning(png_ptr, warning_message+offset);
 }
+#endif /* PNG_NO_WARNINGS */
 
 
 /* These utilities are used internally to build an error message that relates
@@ -152,6 +156,7 @@
    }
 }
 
+#ifdef PNG_READ_SUPPORTED
 void PNGAPI
 png_chunk_error(png_structp png_ptr, png_const_charp error_message)
 {
@@ -165,6 +170,7 @@
    }
 }
 
+#ifndef PNG_NO_WARNINGS
 void PNGAPI
 png_chunk_warning(png_structp png_ptr, png_const_charp warning_message)
 {
@@ -177,7 +183,9 @@
      png_warning(png_ptr, msg);
    }
 }
+#endif /* PNG_NO_WARNINGS */
 
+#endif /* PNG_READ_SUPPORTED */
 
 /* This is the default error handling function.  Note that replacements for
  * this function MUST NOT RETURN, or the program will likely crash.  This
@@ -234,6 +242,7 @@
 #endif
 }
 
+#ifndef PNG_NO_WARNINGS
 /* This function is called when there is a warning, but the library thinks
  * it can continue anyway.  Replacement functions don't have to do anything
  * here if you don't want them to.  In the default configuration, png_ptr is
@@ -271,6 +280,7 @@
 #endif
    png_ptr = png_ptr; /* make compiler happy */
 }
+#endif /* PNG_NO_WARNINGS */
 
 /* This function is called when the application wants to use another method
  * of handling errors and warnings.  Note that the error function MUST NOT
diff --git a/pnggccrd.c b/pnggccrd.c
index 7b0d67f..acc4261 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -3,7 +3,7 @@
  *
  * For Intel x86 CPU (Pentium-MMX or later) and GNU C compiler.
  *
- * Last changed in libpng 1.2.19 July 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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
diff --git a/pngpread.c b/pngpread.c
index bd87fe4..cb5daa7 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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 ab6db04..1a7c842 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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 dd566ce..eb83968 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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 123cb9c..8ea4c78 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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)
@@ -3144,6 +3144,7 @@
          png_snprintf(filnm, 10, "none");
          break;
 
+#ifndef PNG_NO_READ_FILTER
       case 1:
          png_snprintf(filnm, 10, "sub-%s",
              "x86");
@@ -3163,6 +3164,7 @@
          png_snprintf(filnm, 10, "Paeth-%s",
              "x86");
          break;
+#endif /* PNG_NO_READ_FILTER */
 
       default:
          png_snprintf(filnm, 10, "unknown");
@@ -3180,6 +3182,7 @@
       case PNG_FILTER_VALUE_NONE:
          break;
 
+#ifndef PNG_NO_READ_FILTER
       case PNG_FILTER_VALUE_SUB:
          {
             png_uint_32 i;
@@ -3289,6 +3292,7 @@
             }
          }
          break;
+#endif /* PNG_NO_READ_FILTER */
 
       default:
          png_warning(png_ptr, "Ignoring bad row-filter type");
@@ -3742,6 +3746,7 @@
    {
       case PNG_FILTER_VALUE_NONE:
          break;
+#ifndef PNG_NO_READ_FILTER
       case PNG_FILTER_VALUE_SUB:
       {
          png_uint_32 i;
@@ -3848,6 +3853,7 @@
          }
          break;
       }
+#endif /* PNG_NO_READ_FILTER */
       default:
          png_warning(png_ptr, "Ignoring bad adaptive filter type");
          *row=0;
diff --git a/pngtest.c b/pngtest.c
index cb763c8..163308a 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1553,4 +1553,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_19beta23 your_png_h_is_not_version_1_2_19beta23;
+typedef version_1_2_19beta24 your_png_h_is_not_version_1_2_19beta24;
diff --git a/pngvcrd.c b/pngvcrd.c
index c085087..ff09305 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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
diff --git a/pngwrite.c b/pngwrite.c
index 79b6279..b6dccf7 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1141,15 +1141,26 @@
    {
       switch (filters & (PNG_ALL_FILTERS | 0x07))
       {
+#ifndef PNG_NO_WRITE_FILTER
          case 5:
          case 6:
          case 7: png_warning(png_ptr, "Unknown row filter for method 0");
-         case PNG_FILTER_VALUE_NONE:  png_ptr->do_filter=PNG_FILTER_NONE; break;
-         case PNG_FILTER_VALUE_SUB:   png_ptr->do_filter=PNG_FILTER_SUB;  break;
-         case PNG_FILTER_VALUE_UP:    png_ptr->do_filter=PNG_FILTER_UP;   break;
-         case PNG_FILTER_VALUE_AVG:   png_ptr->do_filter=PNG_FILTER_AVG;  break;
-         case PNG_FILTER_VALUE_PAETH: png_ptr->do_filter=PNG_FILTER_PAETH;break;
+#endif /* PNG_NO_WRITE_FILTER */
+         case PNG_FILTER_VALUE_NONE:
+              png_ptr->do_filter=PNG_FILTER_NONE; break;
+#ifndef PNG_NO_WRITE_FILTER
+         case PNG_FILTER_VALUE_SUB:
+              png_ptr->do_filter=PNG_FILTER_SUB; break;
+         case PNG_FILTER_VALUE_UP:
+              png_ptr->do_filter=PNG_FILTER_UP; break;
+         case PNG_FILTER_VALUE_AVG:
+              png_ptr->do_filter=PNG_FILTER_AVG; break;
+         case PNG_FILTER_VALUE_PAETH:
+              png_ptr->do_filter=PNG_FILTER_PAETH; break;
          default: png_ptr->do_filter = (png_byte)filters; break;
+#else
+         default: png_warning(png_ptr, "Unknown row filter for method 0");
+#endif /* PNG_NO_WRITE_FILTER */
       }
 
       /* If we have allocated the row_buf, this means we have already started
@@ -1163,6 +1174,7 @@
        */
       if (png_ptr->row_buf != NULL)
       {
+#ifndef PNG_NO_WRITE_FILTER
          if ((png_ptr->do_filter & PNG_FILTER_SUB) && png_ptr->sub_row == NULL)
          {
             png_ptr->sub_row = (png_bytep)png_malloc(png_ptr,
@@ -1217,6 +1229,7 @@
          }
 
          if (png_ptr->do_filter == PNG_NO_FILTERS)
+#endif /* PNG_NO_WRITE_FILTER */
             png_ptr->do_filter = PNG_FILTER_NONE;
       }
    }
diff --git a/pngwutil.c b/pngwutil.c
index 85911a7..3316ebe 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 10, 2007
+ * Last changed in libpng 1.2.19 July 14, 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)
@@ -1752,6 +1752,7 @@
    png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, (png_uint_32)buf_size);
    png_ptr->row_buf[0] = PNG_FILTER_VALUE_NONE;
 
+#ifndef PNG_NO_WRITE_FILTERING
    /* set up filtering buffer, if using this filter */
    if (png_ptr->do_filter & PNG_FILTER_SUB)
    {
@@ -1787,6 +1788,7 @@
             (png_ptr->rowbytes + 1));
          png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH;
       }
+#endif /* PNG_NO_WRITE_FILTERING */
    }
 
 #ifdef PNG_WRITE_INTERLACING_SUPPORTED
@@ -2122,6 +2124,7 @@
 
    prev_row = png_ptr->prev_row;
    best_row = row_buf = png_ptr->row_buf;
+#ifndef PNG_NO_WRITE_FILTER
    mins = PNG_MAXSUM;
 
    /* The prediction method we use is to find which method provides the
@@ -2696,7 +2699,7 @@
          best_row = png_ptr->paeth_row;
       }
    }
-
+#endif /* PNG_NO_WRITE_FILTER */
    /* Do the actual writing of the filtered row data from the chosen filter. */
 
    png_write_filtered_row(png_ptr, best_row);
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index 745373c..12c3291 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -169,7 +169,7 @@
 
 # SET UP LINKS
 set_target_properties(${PNG_LIB_NAME} PROPERTIES
-#    VERSION 0.${PNGLIB_RELEASE}.1.2.19beta23
+#    VERSION 0.${PNGLIB_RELEASE}.1.2.19beta24
      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 dedaae7..53b12a2 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -8,7 +8,7 @@
 
 # Modeled after libxml-config.
 
-version=1.2.19beta23
+version=1.2.19beta24
 prefix=""
 libdir=""
 libs=""
diff --git a/scripts/libpng.pc-configure.in b/scripts/libpng.pc-configure.in
index f6b9f68..76d4c72 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.19beta23
+Version: 1.2.19beta24
 Libs: -L${libdir} -lpng12
 Cflags: -I${includedir} @LIBPNG_NO_MMX@
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index c510599..c30b24a 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.19beta23
+Version: 1.2.19beta24
 Libs: -L${libdir} -lpng12
 Cflags: -I${includedir}
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index 38312fe..8a4729f 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index b00d1e1..01eac84 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index cd76212..40e7372 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -20,7 +20,7 @@
 
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index fd60dfe..b84b427 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 3d50d13..1cc4d1c 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -77,7 +77,7 @@
 LIBNAME = libpng12
 PNGMAJ = 0
 CYGDLL = 12
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 SHAREDLIB=cygpng$(CYGDLL).dll
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index 9b0b985..01cd6d4 100644
--- a/scripts/makefile.darwin
+++ b/scripts/makefile.darwin
@@ -19,7 +19,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index ce44259..5cee9dc 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -5,7 +5,7 @@
 
 # Library name:
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
diff --git a/scripts/makefile.elf b/scripts/makefile.elf
index 48cf140..7acacea 100644
--- a/scripts/makefile.elf
+++ b/scripts/makefile.elf
@@ -12,7 +12,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 9416774..401273b 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -16,7 +16,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64
index 5cddb7c..7e6013c 100644
--- a/scripts/makefile.hp64
+++ b/scripts/makefile.hp64
@@ -18,7 +18,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index 4234186..555f02b 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index 0ef80b4..f75f2e8 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -18,7 +18,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index bee1760..7639c76 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -6,7 +6,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.mingw b/scripts/makefile.mingw
index 8206d86..d71757c 100644
--- a/scripts/makefile.mingw
+++ b/scripts/makefile.mingw
@@ -78,7 +78,7 @@
 LIBNAME = libpng12
 PNGMAJ = 0
 MINGDLL = 12
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 SHAREDLIB=libpng$(MINGDLL).dll
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index 58b10fc..e7d647d 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -14,7 +14,7 @@
 
 LIB=	png12
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.2.19beta23
+SHLIB_MINOR=	1.2.19beta24
 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 d6c37ec..f79d38c 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -14,7 +14,7 @@
 
 LIB=	png
 SHLIB_MAJOR=	3
-SHLIB_MINOR=	1.2.19beta23
+SHLIB_MINOR=	1.2.19beta24
 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 c081a1d..80e69f2 100644
--- a/scripts/makefile.nommx
+++ b/scripts/makefile.nommx
@@ -7,7 +7,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd
index fb48f79..b7ddeaf 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -8,7 +8,7 @@
 MANDIR= ${PREFIX}/man/cat
 
 SHLIB_MAJOR=	0
-SHLIB_MINOR=	1.2.19beta23
+SHLIB_MINOR=	1.2.19beta24
 
 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 d6bb9bb..7d96ad4 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -9,7 +9,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 5de0c13..d9eb0bb 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -6,7 +6,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index affa1e3..671ebfa 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -6,7 +6,7 @@
 # Library name:
 LIBNAME=libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index aa586d6..322f3c2 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -8,7 +8,7 @@
 
 # Library name:
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 LIBNAME = libpng12
 
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 296a87e..a0ba236 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/makefile.solaris-x86 b/scripts/makefile.solaris-x86
index db7f2ac..22a6ece 100644
--- a/scripts/makefile.solaris-x86
+++ b/scripts/makefile.solaris-x86
@@ -8,7 +8,7 @@
 # Library name:
 LIBNAME = libpng12
 PNGMAJ = 0
-PNGMIN = 1.2.19beta23
+PNGMIN = 1.2.19beta24
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # Shared library names:
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 399bf91..908fedf 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
 ; PNG.LIB module definition file for OS/2
 ;----------------------------------------
 
-; Version 1.2.19beta23
+; Version 1.2.19beta24
 
 LIBRARY		PNG
 DESCRIPTION	"PNG image compression library for OS/2"
diff --git a/scripts/pngw32.def b/scripts/pngw32.def
index 8ec3e48..5b3dcec 100644
--- a/scripts/pngw32.def
+++ b/scripts/pngw32.def
@@ -5,7 +5,7 @@
 LIBRARY
 
 EXPORTS
-;Version 1.2.19beta23
+;Version 1.2.19beta24
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3