diff --git a/ANNOUNCE b/ANNOUNCE
index d1b9d77..0bba759 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.0.8beta3 - July 11, 2000
+Libpng 1.0.8beta4 - July 14, 2000
 
 This is a public release of libpng, intended for use in production codes.
 
@@ -15,6 +15,9 @@
   Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS()
      for indexed-color input files to avoid potential double-freeing trans array
      under some unusual conditions; problem was introduced in version 1.0.7.
+  Added the files pngbar.png and pngbar.jpg to the distribution.
+  Added cygwin subdirectory, makefile.cygwin, and cygwin support in pngconf.h
+  Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index 4e75e43..15cd3cc 100644
--- a/CHANGES
+++ b/CHANGES
@@ -797,7 +797,7 @@
   Fixed "DJBPP" typo in pnggccrd.c introduced in beta18.
 version 1.0.7 [July 1, 2000]
   Revised the definition of "trans_values" in libpng.3/libpng.txt
-version 1.0.8beta3 [July 11, 2000]
+version 1.0.8beta4 [July 14, 2000]
 version 1.0.8beta1 [July 8, 2000]
   Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks.
   Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and
@@ -814,6 +814,10 @@
      for indexed-color input files to avoid potential double-freeing trans array
      under some unusual conditions; problem was introduced in version 1.0.6f.
   Further revisions to pngtest.c and files in the wince subdirectory.
+version 1.0.8beta4 [July 14, 2000]
+  Added the files pngbar.png and pngbar.jpg to the distribution.
+  Added cygwin subdirectory, makefile.cygwin, and cygwin support in pngconf.h
+  Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index 8bf47bf..26a3b63 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.0.8beta3 - July 11, 2000
+Installing libpng version 1.0.8beta4 - July 14, 2000
 
 Before installing libpng, you must first install zlib.  zlib
 can usually be found wherever you got libpng.  zlib can be
@@ -10,7 +10,7 @@
 version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.0.8beta3" or "lpng107" and "zlib-1.1.3"
+might be called "libpng-1.0.8beta4" or "lpng107" and "zlib-1.1.3"
 or "zlib113") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -57,8 +57,8 @@
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta3)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta3,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta4)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.8beta4,
                        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
@@ -70,9 +70,9 @@
  makefile.intel    =>  Intel C/C++ version 4.0 and later
  libpng.icc        =>  Project file for IBM VisualAge/C++ version 4.0 or later
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
- makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta3)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta4)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.8beta3)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.8beta4)
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
  makefile.mips     =>  MIPS makefile
  makefile.acorn    =>  Acorn makefile
diff --git a/KNOWNBUG b/KNOWNBUG
index 3bf58c2..958c7c0 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -9,6 +9,13 @@
    STATUS: Under investigation.  Experts on MMX assembler code are
    invited to help with the debugging.  Note that pngvcrd.c works fine.
 
+   Update: fixed in libpng-1.0.8beta1.  It compiles under gcc-2.7.2.3
+   and seems to work; under gcc-2.7.2.1 it compiles but crashes in
+   execution.  It is recommended that people use 2.95.2 or later.
+
+   The png_read_filter() function has still not been fully converted and
+   will not compile under gcc-2.95.2; it is currently ifdef'ed out.
+
 2. July 3, 2000 -- BUG -- MEMORY LEAK
 
    There is a memory leak in pngpread.c; it doesn't free "key".
@@ -38,11 +45,18 @@
    Libpng-1.0.7 does not support WindowsCE.
 
    STATUS:  Libpng-1.0.8 and libpng-2.0.0 will support WindowsCE.  A
-   new typedef, png_file_p, will be added which is normally FILE * but
+   new typedef, png_FILE_p, will be added which is normally FILE * but
    will be HANDLE if libpng is being built for WindowsCE.  Other patches
    required for WindowsCE support have been provided and will be applied.
+   Finished in libpng-1.0.8beta3.
 
-6. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey
+6. July 13, 2000 -- ENHANCEMENT -- Cygwin support
+
+   Libpng-1.0.7 does not support building DLLs under Cygwin
+
+   STATUS: Cygwin support has been added to libpng-1.0.8beta4.
+
+7. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey
 
    Loops need to be optimized everywhere
 
@@ -57,7 +71,7 @@
    libpng-1.1.0.  About 160 loops will be turned around
    in libpng-2.0.x betaxx, for testing.
 
-7. July 4, 1998 -- ENHANCEMENT -- Glenn R-P
+8. July 4, 1998 -- ENHANCEMENT -- Glenn R-P
 
    libpng-1.0.5 and earlier transform colors to gamma=1.0 space for
    merging with background, and then back to the image's gamma.  The
@@ -69,7 +83,7 @@
 
    STATUS: under development.
 
-8. September 1999 -- ENHANCEMENT --
+9. September 1999 -- ENHANCEMENT --
 
    It should be possible to use libpng without floating-point aritmetic.
 
diff --git a/LICENSE b/LICENSE
index bd2a720..2cbd383 100644
--- a/LICENSE
+++ b/LICENSE
@@ -4,7 +4,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng version 1.0.8beta3, July 11, 2000 is Copyright (c) 2000 Glenn Randers-Pehrson
+libpng version 1.0.8beta4, July 14, 2000 is Copyright (c) 2000 Glenn Randers-Pehrson
 Distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
 
@@ -87,11 +87,11 @@
    printf("%s",png_get_copyright(NULL));
 
 Also, the PNG logo (in PNG format, of course) is supplied in the
-file "pngnow.png".
+files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
 
 Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
 certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-July 11, 2000
+July 14, 2000
diff --git a/README b/README
index b5efe43..bff2733 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.0.8beta3 - July 11, 2000 (shared library 2.1)
+README for libpng 1.0.8beta4 - July 14, 2000 (shared library 2.1)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
@@ -148,7 +148,8 @@
       pngerror.c    =>  Error/warning message I/O functions
       pngget.c      =>  Functions for retrieving info from struct
       pngmem.c      =>  Memory handling functions
-      pngnow.png    =>  PNG logo
+      pngbar.png    =>  PNG logo, 88x31
+      pngnow.png    =>  PNG logo, 98x31
       pngpread.c    =>  Progressive reading functions
       pngread.c     =>  Read data/helper high-level functions
       pngrio.c      =>  Lowest-level data read I/O functions
@@ -176,9 +177,9 @@
        descrip.mms      =>  VMS makefile for MMS or MMK
        makefile.std     =>  Generic UNIX makefile (cc, creates static libpng.a)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng.so.2.1.0.8beta3)
+                            (gcc, creates libpng.so.2.1.0.8beta4)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng.so.2.1.0.8beta3, uses assembler code
+                            libpng.so.2.1.0.8beta4, 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
@@ -190,10 +191,10 @@
        makefile.intel   =>  Intel C/C++ version 4.0 and later
        libpng.icc       =>  Project file, IBM VisualAge/C++ 4.0 or later
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta3)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.8beta4)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng.so.2.1.0.8beta3)
+                            (gcc, creates libpng.so.2.1.0.8beta4)
        makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc
        makefile.mips    =>  MIPS makefile
        makefile.acorn   =>  Acorn makefile
diff --git a/Y2KINFO b/Y2KINFO
index caa4c1d..c301bcb 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      July 11, 2000
+      July 14, 2000
 
       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.0.8beta3 are Y2K compliant.  It is my belief that earlier
+      upward through 1.0.8beta4 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 e18041a..d5720bf 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.0.8beta3.  Instead, please
+  There is no \"configure\" script for Libpng-1.0.8beta4.  Instead, please
   copy the appropriate makefile for your system from the \"scripts\"
   directory.  Read the INSTALL file for more details.
 "
diff --git a/libpng.3 b/libpng.3
index 2e55112..aef2110 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "July 11, 2000"
+.TH LIBPNG 3 "July 14, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta3
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta4
 .SH SYNOPSIS
 \fI\fB
 
@@ -747,7 +747,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.0.8beta3 - July 11, 2000
+ libpng version 1.0.8beta4 - July 14, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -3381,13 +3381,13 @@
 
 .SH VII. Y2K Compliance in libpng
 
-July 11, 2000
+July 14, 2000
 
 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.0.8beta3 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.8beta4 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
@@ -3528,7 +3528,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.0.8beta3 - July 11, 2000:
+Libpng version 1.0.8beta4 - July 14, 2000:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3541,7 +3541,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng version 1.0.8beta3, July 11, 2000 is
+libpng version 1.0.8beta4, July 14, 2000 is
 Copyright (c) 2000 Glenn Randers-Pehrson
 Distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -3625,14 +3625,14 @@
    printf("%s",png_get_copyright(NULL));
 
 Also, the PNG logo (in PNG format, of course) is supplied in the
-file "pngnow.png".
+files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
 
 Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
 certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-July 11, 2000
+July 14, 2000
 
 .\" end of man page
 
diff --git a/libpng.txt b/libpng.txt
index 088abc0..14306fe 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.0.8beta3 - July 11, 2000
+ libpng version 1.0.8beta4 - July 14, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -2634,13 +2634,13 @@
 
 VII. Y2K Compliance in libpng
 
-July 11, 2000
+July 14, 2000
 
 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.0.8beta3 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.8beta4 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
diff --git a/libpngpf.3 b/libpngpf.3
index db5a556..a5479d6 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "July 11, 2000"
+.TH LIBPNGPF 3 "July 14, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta3
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.8beta4
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/msvc/README.txt b/msvc/README.txt
index eb258de..19f8db6 100644
--- a/msvc/README.txt
+++ b/msvc/README.txt
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Build File, Format Version 6.00 for
-libpng 1.0.8beta3 (July 11, 2000) and zlib
+libpng 1.0.8beta4 (July 14, 2000) and zlib
 
 Copyright (C) 2000 Simon-Pierre Cadieux
 For conditions of distribution and use, see copyright notice in png.h
diff --git a/msvc/png32ms.def b/msvc/png32ms.def
index 79765c2..5685ec4 100644
--- a/msvc/png32ms.def
+++ b/msvc/png32ms.def
@@ -6,7 +6,7 @@
 DESCRIPTION "PNG image compression library for Windows"
 
 EXPORTS
-;Version 1.0.8beta3
+;Version 1.0.8beta4
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
diff --git a/png.5 b/png.5
index d039a1f..1e8d316 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "July 11, 2000"
+.TH PNG 5 "July 14, 2000"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index aea0f98..1d28fa3 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.0.8beta3 - July 11, 2000
+ * libpng version 1.0.8beta4 - July 14, 2000
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -13,14 +13,14 @@
 #include "png.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_8beta3 Your_png_h_is_not_version_1_0_8beta3;
+typedef version_1_0_8beta4 Your_png_h_is_not_version_1_0_8beta4;
 
 /* Version information for C files.  This had better match the version
  * string defined in png.h.  */
 
 #ifdef PNG_USE_GLOBAL_ARRAYS
 /* png_libpng_ver was changed to a function in version 1.0.5c */
-char png_libpng_ver[12] = "1.0.8beta3";
+char png_libpng_ver[12] = "1.0.8beta4";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -140,6 +140,7 @@
    png_uint_32 num_bytes = (png_uint_32)items * size;
    png_voidp ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes);
 
+#ifndef PNG_NO_ZALLOC_ZERO
    if (num_bytes > (png_uint_32)0x8000L)
    {
       png_memset(ptr, 0, (png_size_t)0x8000L);
@@ -150,6 +151,7 @@
    {
       png_memset(ptr, 0, (png_size_t)num_bytes);
    }
+#endif
    return ((voidpf)ptr);
 }
 
@@ -616,7 +618,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ("\n libpng version 1.0.8beta3 - July 11, 2000\n\
+   return ("\n libpng version 1.0.8beta4 - July 14, 2000\n\
    Copyright (c) 1998-2000 Glenn Randers-Pehrson\n\
    Copyright (c) 1996, 1997 Andreas Dilger\n\
    Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n");
@@ -634,8 +636,8 @@
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return("1.0.8beta3");
-   return("1.0.8beta3");
+      return("1.0.8beta4");
+   return("1.0.8beta4");
 }
 
 png_charp PNGAPI
diff --git a/png.h b/png.h
index 442125b..38e017b 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.0.8beta3 - July 11, 2000
+ * libpng version 1.0.8beta4 - July 14, 2000
  * Copyright (c) 1998, 1999, 2000 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.0.8beta3 - July 11, 2000: Glenn
+ *  libpng versions 0.97, January 1998, through 1.0.8beta4 - July 14, 2000: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -82,7 +82,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng version 1.0.8beta3, July 11, 2000, is
+ * libpng version 1.0.8beta4, July 14, 2000, is
  * Copyright (c) 2000 Glenn Randers-Pehrson
  * Distributed according to the same disclaimer and license as libpng-1.0.6
  * with the following individuals added to the list of Contributing Authors
@@ -167,7 +167,7 @@
  * printf("%s",png_get_copyright(NULL));
  *
  * Also, the PNG logo (in PNG format, of course) is supplied in the
- * file "pngnow.png".
+ * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
  */
 
 /*
@@ -187,13 +187,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    July 11, 2000
+ *    July 14, 2000
  *
  *    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.0.8beta3 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.0.8beta4 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
@@ -249,7 +249,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.0.8beta3"
+#define PNG_LIBPNG_VER_STRING "1.0.8beta4"
 
 #define PNG_LIBPNG_VER_SONUM   2
 
@@ -259,7 +259,7 @@
 #define PNG_LIBPNG_VER_RELEASE 8
 /* This should match the numeric part of the final component of
  * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
-#define PNG_LIBPNG_VER_BUILD   3
+#define PNG_LIBPNG_VER_BUILD   4
 
 /* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
  * We must not include leading zeros.
@@ -1147,9 +1147,9 @@
 };
 
 /* This prevents a compiler error in png_get_copyright() in png.c if png.c
-and png.h are both at * version 1.0.8beta3
+and png.h are both at * version 1.0.8beta4
  */
-typedef png_structp version_1_0_8beta3;
+typedef png_structp version_1_0_8beta4;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2171,7 +2171,7 @@
 extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.0.8beta3 - July 11, 2000 (header)\n"
+   " libpng version 1.0.8beta4 - July 14, 2000 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
diff --git a/pngasmrd.h b/pngasmrd.h
index 9c8d13c..6eda7b1 100644
--- a/pngasmrd.h
+++ b/pngasmrd.h
@@ -1,6 +1,6 @@
 /* pngasmrd.h - assembler version of utilities to read a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1999, 2000 Glenn Randers-Pehrson
  *
diff --git a/pngbar.jpg b/pngbar.jpg
new file mode 100644
index 0000000..70ba8d8
--- /dev/null
+++ b/pngbar.jpg
Binary files differ
diff --git a/pngbar.png b/pngbar.png
new file mode 100644
index 0000000..49798c8
--- /dev/null
+++ b/pngbar.png
Binary files differ
diff --git a/pngconf.h b/pngconf.h
index 6dbd543..22866ef 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -49,6 +49,60 @@
 #define PNG_MAX_MALLOC_64K
 #endif
 
+/* Special munging to support doing things the 'cygwin' way:
+ * 'Normal' png-on-win32 defines/defaults:
+ *   PNG_BUILD_DLL -- building dll
+ *   PNG_USE_DLL   -- building an application, linking to dll
+ *   (no define)   -- building static library, or building an 
+ *                    application and linking to the static lib
+ * 'Cygwin' defines/defaults:
+ *   PNG_BUILD_DLL -- building the dll
+ *   (no define)   -- building an application, linking to the dll
+ *   PNG_STATIC    -- building the static lib, or building an application
+ *                    which links to the static lib.
+ * Thus,
+ * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
+ * this bit of #ifdefs will define the 'correct' config variables based on
+ * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but
+ * unnecessary.
+ */
+#if defined(__CYGWIN__)
+#  if defined(PNG_BUILD_DLL)
+#    if defined(PNG_USE_DLL)
+#      undef PNG_USE_DLL
+#    endif
+#    if !defined(PNG_DLL)
+#      define PNG_DLL
+#    endif
+#    if defined(PNG_STATIC)
+#      undef PNG_STATIC
+#    endif
+#  else
+#    if defined(PNG_STATIC)
+#      if defined(PNG_USE_DLL)
+#        undef PNG_USE_DLL
+#      endif
+#      if defined(PNG_DLL)
+#        undef PNG_DLL
+#      endif
+#    else
+#      if defined(PNG_USE_DLL)
+#        if !defined(PNG_DLL)
+#          define PNG_DLL
+#        endif
+#      else
+#        if defined(PNG_DLL)
+#           define PNG_USE_DLL
+#        else
+#           define PNG_USE_DLL
+#           define PNG_DLL
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+
 /* This protects us against compilers that run on a windowing system
  * and thus don't have or would rather us not use the stdio types:
  * stdin, stdout, and stderr.  The only one currently used is stderr
@@ -534,6 +588,9 @@
 #ifndef PNG_NO_USER_MEM
 #define PNG_USER_MEM_SUPPORTED
 #endif
+#ifndef PNG_NO_ZALLOC_ZERO
+#define PNG_ZALLOC_ZERO
+#endif
 */
 
 /* This is only for PowerPC big-endian and 680x0 systems */
@@ -854,7 +911,7 @@
 #define LDATA 0
 #endif
 
-#if !defined(__WIN32__) && !defined(__FLAT__)
+#if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
 #define PNG_MAX_MALLOC_64K
 #if (LDATA != 1)
 #ifndef FAR
@@ -868,7 +925,7 @@
  * const if your compiler supports it. (SJT)
 #  define FARDATA FAR
  */
-#endif  /* __WIN32__, __FLAT__ */
+#endif  /* __WIN32__, __FLAT__, __CYGWIN__ */
 
 #endif   /* __BORLANDC__ */
 
@@ -952,12 +1009,43 @@
  * It is equivalent to Microsoft predefined macro _DLL which is
  * automatically defined when you compile using the share
  * version of the CRT (C Run-Time library)
+ * 
+ * The cygwin mods make this behavior a little different: 
+ * Define PNG_BUILD_DLL if you are building a dll for use with cygwin
+ * Define PNG_STATIC if you are building a static library for use with cygwin,
+ *   -or- if you are building an application that you want to link to the 
+ *   static library.
+ * PNG_USE_DLL is defined by default (no user action needed) unless one of
+ *   the other flags is defined.
  */
 
 #if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL))
 #  define PNG_DLL
 #endif
-
+/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib.
+ * When building a static lib, default to no GLOBAL ARRAYS, but allow
+ * command-line override
+ */
+#if defined(__CYGWIN__)
+#  if !defined(PNG_STATIC)
+#    if defined(PNG_USE_GLOBAL_ARRAYS)
+#      undef PNG_USE_GLOBAL_ARRAYS
+#    endif
+#    if !defined(PNG_USE_LOCAL_ARRAYS)
+#      define PNG_USE_LOCAL_ARRAYS
+#    endif
+#  else
+#    if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS)
+#      if defined(PNG_USE_GLOBAL_ARRAYS)
+#        undef PNG_USE_GLOBAL_ARRAYS
+#      endif
+#    endif
+#  endif
+#  if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
+#    define PNG_USE_LOCAL_ARRAYS
+#  endif
+#endif
+    
 /* Do not use global arrays (helps with building DLL's)
  * They are no longer used in libpng itself, since version 1.0.5c,
  * but might be required for some pre-1.0.5c applications.
@@ -972,19 +1060,21 @@
 
 #ifndef PNGAPI
 
-#if defined(__MINGW32__) || defined(__CYGWIN32__) && !defined(PNG_MODULEDEF)
+
+#if defined(__MINGW32__) || defined(__CYGWIN__) && !defined(PNG_MODULEDEF)
 #  ifndef PNG_NO_MODULEDEF
 #    define PNG_NO_MODULEDEF
 #  endif
-#endif
-
+#endif 
+ 
 #if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
 #  define PNG_IMPEXP
 #endif
 
 #if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \
-    defined(_Windows) || defined(_WINDOWS) || \
-    defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
+    (( defined(_Windows) || defined(_WINDOWS) || \
+       defined(WIN32) || defined(_WIN32) || defined(__WIN32__) \
+	  ) && !defined(__CYGWIN__))
 
 #  ifdef __GNUC__
 #    define PNGAPI __cdecl
@@ -1026,11 +1116,18 @@
 #        endif
 #     endif
 #  endif  /* PNG_IMPEXP */
-#else /* !(DLL || WINDOWS) */
-#  if 0 /* ... other platforms, with other meanings */
+#else /* !(DLL || non-cygwin WINDOWS) */
+#  if defined(__CYGWIN__) && !defined(PNG_DLL)
+#    if !defined(PNG_IMPEXP)
+#      define PNG_IMPEXP
+#    endif
+#    define PNGAPI __cdecl
 #  else
-#     define PNGAPI
-#     define PNG_IMPEXP
+#    if 0 /* ... other platforms, with other meanings */
+#    else
+#       define PNGAPI
+#       define PNG_IMPEXP
+#    endif
 #  endif
 #endif
 #endif
diff --git a/pngerror.c b/pngerror.c
index 5dd1c31..29c80c7 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pnggccrd.c b/pnggccrd.c
index 32efb51..7402ca5 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -6,7 +6,7 @@
  *     and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
  *     for Intel's performance analysis of the MMX vs. non-MMX code.
  *
- * libpng version 1.0.8beta3 - July 11, 2000
+ * libpng version 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
@@ -166,9 +166,9 @@
 static const int png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
 #endif
 
-// djgpp and Win32 add their own underscores to global variables,
+// djgpp, Win32, and Cygwin add their own underscores to global variables,
 // so define them without:
-#if defined(__DJGPP__) || defined(WIN32)
+#if defined(__DJGPP__) || defined(WIN32) || defined(__CYGWIN__)
 #  define _unmask      unmask
 #  define _const4      const4
 #  define _const6      const6
diff --git a/pngget.c b/pngget.c
index b5df47b..e6375bf 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngmem.c b/pngmem.c
index 2b2bd52..9a5ab26 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpread.c b/pngpread.c
index 32dbca1..13fd413 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index 1c4e33c..fea208c 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -697,7 +697,7 @@
  * not called png_set_interlace_handling(), the display_row buffer will
  * be ignored, so pass NULL to it.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta3
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta4
  */
 
 void PNGAPI
@@ -746,7 +746,7 @@
  * only call this function once.  If you desire to have an image for
  * each pass of a interlaced image, use png_read_rows() instead.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta3
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.8beta4
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index 7dbee10..82c0c45 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 52b73aa..3e53fa8 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index 6551124..45e1755 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngset.c b/pngset.c
index fc236eb..72d5227 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtest.c b/pngtest.c
index aa235db..2694094 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1435,4 +1435,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_8beta3 your_png_h_is_not_version_1_0_8beta3;
+typedef version_1_0_8beta4 your_png_h_is_not_version_1_0_8beta4;
diff --git a/pngtrans.c b/pngtrans.c
index ae90832..fe7c49f 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,7 +1,7 @@
 
 /* pngtrans.c - transforms the data in a row (used by both readers and writers)
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngvcrd.c b/pngvcrd.c
index 639c378..e6d5339 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngwio.c b/pngwio.c
index 22f8bd4..3d5bc52 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwrite.c b/pngwrite.c
index dc1246e..97d0ff9 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwtran.c b/pngwtran.c
index 674c0ad..c0efa9e 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index 1640a2d..b41cc09 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.0.8beta3 - July 11, 2000
+ * libpng 1.0.8beta4 - July 14, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 3163354..46d4623 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -31,7 +31,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # where make install puts libpng.a, libpng.so*, and png.h
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
new file mode 100644
index 0000000..463a6f7
--- /dev/null
+++ b/scripts/makefile.cygwin
@@ -0,0 +1,165 @@
+# makefile for cygwin on x86
+#   builds both dll (with import lib) and static lib versions
+#   of the library, and builds two copies of pngtest: one
+#   statically linked and one dynamically linked.
+#   
+#   based on makefile for linux-elf w/mmx by:
+# Copyright (C) 1998-2000 Greg Roelofs
+# Copyright (C) 1996, 1997 Andreas Dilger
+# For conditions of distribution and use, see copyright notice in png.h
+
+# To enable assembler optimizations, add '-DPNG_USE_PNGGCCRD' to
+# $CFLAGS, and include pnggccrd.o in $OBJS, below.
+
+CC=gcc
+
+# where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
+prefix=/usr
+
+# Where the zlib library and include files are located
+ZLIBLIB=${prefix}/lib
+ZLIBINC=${prefix}/include
+#ZLIBLIB=../zlib
+#ZLIBINC=../zlib
+
+SHAREDLIB=libpng.dll
+STATLIB=libpng.a
+IMPLIB=libpng.dll.a
+SHAREDDEF=libpng.def
+LIBS=$(SHAREDLIB) $(STATLIB)
+EXE=.exe
+
+ALIGN=
+# for i386:
+#ALIGN=-malign-loops=2 -malign-functions=2
+
+WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
+	-Wmissing-declarations -Wtraditional -Wcast-align \
+	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
+
+#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
+#        -fomit-frame-pointer  # $(WARNMORE) -g -DPNG_DEBUG=5
+CFLAGS=-I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
+        -fomit-frame-pointer 
+
+LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz
+LDSHARED=gcc -shared -Wl,--enable-auto-image-base
+LDEXTRA=-Wl,--out-implib=$(IMPLIB) $(SHAREDDEF)
+
+RANLIB=ranlib
+#RANLIB=echo
+
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
+# have to change it.
+PNGMAJ = 2
+PNGMIN = 1.0.8beta3
+PNGVER = $(PNGMAJ).$(PNGMIN)
+
+INCPATH=$(prefix)/include
+LIBPATH=$(prefix)/lib
+BINPATH=$(prefix)/bin
+MANPATH=$(prefix)/man
+MAN3PATH=$(MANPATH)/man3
+DOCPATH=$(prefix)/doc/libpng-$(PNGMIN)
+CYGDOCPATH=$(prefix)/doc/Cygwin
+
+OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
+	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
+	pngwtran.o pngmem.o pngerror.o pngpread.o # pnggccrd.o
+
+OBJSDLL = $(OBJS:.o=.pic.o)
+
+.SUFFIXES:      .c .o .pic.o
+
+%.o : %.c
+	$(CC) -c $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -o $@ $<
+
+%.pic.o : %.c
+	$(CC) -c $(CFLAGS) -DPNG_BUILD_DLL -o $@ $<
+
+all: $(SHAREDLIB) $(STATLIB) pngtest$(EXE) pngtest-stat$(EXE)
+
+pnggccrd.o:	png.h pngconf.h pngasmrd.h
+	@echo ""
+	@echo '    You can ignore the single "control reaches end of non-void function"'
+	@echo '    warning and multiple "<variable> defined but not used" warnings:'
+	@echo ""
+	$(CC) -c $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -o $@ $*.c
+
+pnggccrd.pic.o:	png.h pngconf.h pngasmrd.h
+	@echo ""
+	@echo '    You can ignore the single "control reaches end of non-void function"'
+	@echo '    warning and multiple "<variable> defined but not used" warnings:'
+	@echo ""
+	$(CC) -c $(CFLAGS) -o $@ pnggccrd.c
+
+$(STATLIB): $(OBJS)
+	ar rc $@ $(OBJS)
+	$(RANLIB) $@
+
+$(SHAREDDEF): msvc/png32ms.def
+	cat $< | sed -e '1{G;s/^\(.*\)\(\n\)/EXPORTS/;};2,/^EXPORTS/d' > $@
+
+$(SHAREDLIB): $(OBJSDLL) $(SHAREDDEF)
+	$(LDSHARED) -o $@ $(LDEXTRA) $(OBJSDLL) -L. -L$(ZLIBLIB) -lz 
+
+pngtest$(EXE): pngtest.pic.o $(SHAREDLIB)
+	$(CC) $(CFLAGS) $< $(LDFLAGS) -o $@
+
+pngtest-stat$(EXE): pngtest.o $(STATLIB)
+	$(CC) -static $(CFLAGS) $< $(LDFLAGS) -o $@
+
+pngtest.pic.o: pngtest.c
+	$(CC) $(CFLAGS) -c $< -o $@
+
+pngtest.o: pngtest.c
+	$(CC) $(CFLAGS) -DPNG_STATIC -DZLIB_STATIC -c $< -o $@
+
+test: test-dll test-stat
+
+test-stat: pngtest-stat$(EXE)
+	./pngtest-stat
+
+test-dll: pngtest$(EXE)
+	./pngtest
+
+install: $(STATLIB) $(SHAREDLIB)
+	-@if [ ! -d $(INCPATH)  ]; then mkdir -p $(INCPATH); fi
+	-@if [ ! -d $(LIBPATH) ]; then mkdir -p $(LIBPATH); fi
+	-@if [ ! -d $(BINPATH) ]; then mkdir -p $(BINPATH); fi
+	-@if [ ! -d $(MAN3PATH) ]; then mkdir -p $(MAN3PATH); fi
+	-@if [ ! -d $(DOCPATH) ]; then mkdir -p $(DOCPATH); fi
+	install -m 644 png.h pngconf.h $(INCPATH)
+	install -m 755 $(STATLIB) $(IMPLIB) $(LIBPATH)
+	install -s -m 755 $(SHAREDLIB) $(BINPATH)
+	install -m 644 $(DOCS) $(DOCPATH)
+	install -m 644 libpngpf.3 libpng.3 $(MAN3PATH)
+
+clean:
+	/bin/rm -f *.pic.o *.o $(STATLIB) $(IMPLIB) $(SHAREDLIB) \
+	pngtest-stat$(EXE) pngtest$(EXE) pngout.png $(SHAREDDEF)
+
+DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
+writelock:
+	chmod a-w *.[ch35] $(DOCS) scripts/*
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+png.o png.pic.o:		png.h pngconf.h png.c pngasmrd.h
+pngerror.o pngerror.pic.o:	png.h pngconf.h pngerror.c
+pngrio.o pngrio.pic.o:		png.h pngconf.h pngrio.c
+pngwio.o pngwio.pic.o:		png.h pngconf.h pngwio.c
+pngmem.o pngmem.pic.o:		png.h pngconf.h pngmem.c
+pngset.o pngset.pic.o:		png.h pngconf.h pngset.c
+pngget.o pngget.pic.o:		png.h pngconf.h pngget.c
+pngread.o pngread.pic.o:	png.h pngconf.h pngread.c
+pngrtran.o pngrtran.pic.o:	png.h pngconf.h pngrtran.c
+pngrutil.o pngrutil.pic.o:	png.h pngconf.h pngrutil.c pngasmrd.h
+pngtrans.o pngtrans.pic.o:	png.h pngconf.h pngtrans.c
+pngwrite.o pngwrite.pic.o:	png.h pngconf.h pngwrite.c
+pngwtran.o pngwtran.pic.o:	png.h pngconf.h pngwtran.c
+pngwutil.o pngwutil.pic.o:	png.h pngconf.h pngwutil.c
+pngpread.o pngpread.pic.o:	png.h pngconf.h pngpread.c
+
+pngtest.o:			png.h pngconf.h pngtest.c
+pngtest-stat.o:			png.h pngconf.h pngtest.c
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index 20d4876..4d07518 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -14,7 +14,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=cc
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 3103fd8..87c8d91 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -3,6 +3,8 @@
 # Copyright 1998-2000 Greg Roelofs
 # For conditions of distribution and use, see copyright notice in png.h
 
+# CAUTION: Do not use this makefile with gcc versions 2.7.2.2 and earlier.
+
 CC=gcc
 
 # where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
@@ -34,7 +36,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 74f0163..ca7a465 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -34,7 +34,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index d58f832..ec4b18a 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -25,7 +25,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index cdc200f..6935884 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -19,8 +19,8 @@
 LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
 LDSHARED=gcc -shared
 
-VER=1.0.8beta3
-LIBS=libpng.so.1.0.8beta3
+VER=1.0.8beta4
+LIBS=libpng.so.1.0.8beta4
 SHAREDLIB=libpng.so
 libdir=$(prefix)/lib32
 
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 613c72d..7f47da3 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -31,7 +31,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.8beta3
+PNGMIN = 1.0.8beta4
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index 557c80b..ff073c1 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -5,7 +5,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.0.8beta3';
+  PNG_LIBPNG_VER_STRING = '1.0.8beta4';
   PNG_LIBPNG_VER        =  10008;
 
 type
