diff --git a/ANNOUNCE b/ANNOUNCE
index c4f8b83..4506b99 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.0.7beta17 - June 24, 2000
+Libpng 1.0.7rc1 - June 9, 2000
 
 This is a public release of libpng, intended for use in production codes.
 
@@ -91,7 +91,6 @@
   Added PNG_USE_DLL macro.
   Added "msvc" and contrib/msvctest directories with MSVC++ project files
     (Simon-Pierre Cadieux) and contrib/visupng directory (Willem van Schaik).
-  Removed leading underscores from "_PNG_H" and "_PNG_SAVE_BSD_SOURCE" macros.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index c86a536..55becc3 100644
--- a/CHANGES
+++ b/CHANGES
@@ -783,12 +783,6 @@
 version 1.0.7rc1 [June 9, 2000]
   Corrected the definition of PNG_TRANSFORM_INVERT_ALPHA  (0x0400 not 0x0200)
   Added contrib/visupng directory (Willem van Schaik)
-version 1.0.7beta17 [June 24, 2000]
-  Revised PNGAPI definition, and pngvcrd.c to work with __GCC__
-    and do not redefine PNGAPI if it is passed in via a compiler directive.
-  Revised visupng/PngFile.c to remove returns from within the Try block.
-  Removed leading underscores from "_PNG_H" and "_PNG_SAVE_BSD_SOURCE" macros.
-  Updated contrib/visupng/cexcept.h to version 1.0.0.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index 797a972..0e39636 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.0.7beta17 - June 24, 2000
+Installing libpng version 1.0.7rc1 - June 9, 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.7beta17" or "lpng107" and "zlib-1.1.3"
+might be called "libpng-1.0.7rc1" 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:
@@ -54,8 +54,8 @@
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7beta17)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7beta17,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7rc1)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7rc1,
                        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
@@ -67,9 +67,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.7beta17)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.7rc1)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.7beta17)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.7rc1)
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
  makefile.mips     =>  MIPS makefile
  makefile.acorn    =>  Acorn makefile
diff --git a/LICENSE b/LICENSE
index 5915849..4c2cf6a 100644
--- a/LICENSE
+++ b/LICENSE
@@ -5,7 +5,7 @@
 Copyright (c) 1996, 1997 Andreas Dilger
 (libpng versions 0.90, December 1996, through 0.96, May 1997)
 Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
-(libpng versions 0.97, January 1998, through 1.0.7beta17, June 24, 2000)
+(libpng versions 0.97, January 1998, through 1.0.7rc1, June 9, 2000)
 
 For the purposes of this copyright and license, "Contributing Authors"
 is defined as the following set of individuals:
@@ -68,4 +68,4 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-June 24, 2000
+June 9, 2000
diff --git a/README b/README
index 884cd58..51d1aec 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.0.7beta17 - June 24, 2000 (shared library 2.1)
+README for libpng 1.0.7rc1 - June 9, 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.
@@ -176,9 +176,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.7beta17)
+                            (gcc, creates libpng.so.2.1.0.7rc1)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng.so.2.1.0.7beta17, uses assembler code
+                            libpng.so.2.1.0.7rc1, 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 +190,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.7beta17)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.7rc1)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng.so.2.1.0.7beta17)
+                            (gcc, creates libpng.so.2.1.0.7rc1)
        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 019f25a..2b0e610 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      June 24, 2000
+      June 9, 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.7beta17 are Y2K compliant.  It is my belief that earlier
+      upward through 1.0.7rc1 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 d92ed41..7a200e9 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.0.7beta17.  Instead, please
+  There is no \"configure\" script for Libpng-1.0.7rc1.  Instead, please
   copy the appropriate makefile for your system from the \"scripts\"
   directory.  Read the INSTALL file for more details.
 "
diff --git a/contrib/msvctest/msvctest.dsp b/contrib/msvctest/msvctest.dsp
index d743840..926e5ed 100644
--- a/contrib/msvctest/msvctest.dsp
+++ b/contrib/msvctest/msvctest.dsp
@@ -119,7 +119,7 @@
 OutDir=.\dll_asm
 SOURCE="$(InputPath)"
 PostBuild_Desc=[Run Test]
-PostBuild_Cmds=set path=..\..\msvc\win32\libpng\dll_asm;..\..\msvc\win32\zlib\dll_asm;	$(outdir)\msvctest.exe ..\..\pngtest.png
+PostBuild_Cmds=set path=..\..\msvc\win32\libpng\dll_asm;..\..\msvc\win32\zlib\dll;	$(outdir)\msvctest.exe ..\..\pngtest.png
 # End Special Build Tool
 
 !ELSEIF  "$(CFG)" == "msvctest - Win32 Debug ASM DLL"
@@ -149,7 +149,7 @@
 OutDir=.\dll_dbga
 SOURCE="$(InputPath)"
 PostBuild_Desc=[Run Test]
-PostBuild_Cmds=set path=..\..\msvc\win32\libpng\dll_dbga;..\..\msvc\win32\zlib\dll_dbga;	$(outdir)\msvctest.exe ..\..\pngtest.png
+PostBuild_Cmds=set path=..\..\msvc\win32\libpng\dll_dbga;..\..\msvc\win32\zlib\dll_dbg;	$(outdir)\msvctest.exe ..\..\pngtest.png
 # End Special Build Tool
 
 !ELSEIF  "$(CFG)" == "msvctest - Win32 LIB"
diff --git a/contrib/visupng/PngFile.c b/contrib/visupng/PngFile.c
index a0cd8e5..c7ec7ab 100644
--- a/contrib/visupng/PngFile.c
+++ b/contrib/visupng/PngFile.c
@@ -228,7 +228,9 @@
         if ((pbImageData = (png_byte *) malloc(ulRowBytes * (*piHeight)
                             * sizeof(png_byte))) == NULL)
         {
-            png_error(png_ptr, "Visual PNG: out of memory");
+            png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+            *ppbImageData = pbImageData = NULL;
+            return FALSE;
         }
         *ppbImageData = pbImageData;
         
@@ -237,7 +239,10 @@
         if ((ppbRowPointers = (png_bytepp) malloc((*piHeight)
                             * sizeof(png_bytep))) == NULL)
         {
-            png_error(png_ptr, "Visual PNG: out of memory");
+            png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+            free(pbImageData);
+            *ppbImageData = pbImageData = NULL;
+            return FALSE;
         }
         
         // set the individual row-pointers to point at the correct offsets
@@ -264,7 +269,6 @@
     Catch (msg)
     {
         png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
-
         *ppbImageData = pbImageData = NULL;
         
         if(ppbRowPointers)
diff --git a/contrib/visupng/README.txt b/contrib/visupng/README.txt
index 7594ec3..7e5d3cf 100644
--- a/contrib/visupng/README.txt
+++ b/contrib/visupng/README.txt
@@ -4,20 +4,13 @@
 Copyright 2000, Willem van Schaik.  For conditions of distribution and
 use, see the copyright/license/disclaimer notice in png.h
 
-As a PNG .dll demo VisualPng is finished. More features would only hinder
-the program's objective. However, further extensions (like support for other 
-graphics formats) are in development. To get these, or for pre-compiled 
-binaries, go to "http://www.schaik.com/png/visualpng.html".
-
-------------------------------------------------------------------------
-
 Assumes that
 
    libpng DLLs and LIBs are in ..\..\msvc\win32\libpng
-   zlib DLLs and LIBs are in   ..\..\msvc\win32\zlib
-   libpng header files are in  ..\..\..\libpng
-   zlib header files are in    ..\..\..\zlib
-   the pngsuite images are in  ..\pngsuite
+   zlib DLLs and LIBs are in ..\..\msvc\win32\zlib
+   libpng header files are in ..\..\..\libpng
+   zlib header files are in ..\..\..\zlib
+   the pngsuite images are in ..\pngsuite
 
 To build:
 
diff --git a/contrib/visupng/VisualPng.png b/contrib/visupng/VisualPng.png
deleted file mode 100644
index c6aa80a..0000000
--- a/contrib/visupng/VisualPng.png
+++ /dev/null
Binary files differ
diff --git a/contrib/visupng/cexcept.h b/contrib/visupng/cexcept.h
index 532b23d..fbe8566 100644
--- a/contrib/visupng/cexcept.h
+++ b/contrib/visupng/cexcept.h
@@ -1,5 +1,5 @@
 /*===
-cexcept.h 1.0.0 (2000-Jun-21-Wed)
+cexcept.h 0.6.1 (2000-Apr-22-Sat)
 Adam M. Costello <amc@cs.berkeley.edu>
 
 An interface for exception-handling in ANSI C, developed jointly with
@@ -107,15 +107,14 @@
     confusion with the C++ keywords, which have subtly different
     semantics.
 
-    A Try/Catch statement has a syntax similar to an if/else
-    statement, except that the parenthesized expression goes after
-    the second keyword rather than the first.  As with if/else,
-    there are two clauses, each of which may be a simple statement
-    ending with a semicolon or a brace-enclosed compound statement.
-    But whereas the else clause is optional, the Catch clause is
-    required.  The expression must be a modifiable lvalue (something
-    capable of being assigned to) of the exact same type passed to
-    define_exception_type().
+    A Try/Catch statement has a syntax similar to an if/else statement,
+    except that the parenthesized expression goes after the second
+    keyword rather than the first.  As with if/else, there are two
+    clauses, each of which may be a simple statement ending with a
+    semicolon or a brace-enclosed compound statement.  But whereas
+    the else clause is optional, the Catch clause is required.  The
+    expression must be an lvalue (something capable of being assigned
+    to) of the exact same type passed to define_exception_type().
 
     If a Throw that uses the same exception context as the Try/Catch is
     executed within the Try clause (typically within a function called
@@ -136,17 +135,9 @@
     return, break, continue, goto, longjmp) is forbidden--the compiler
     will not complain, but bad things will happen at run-time.  Jumping
     into or out of a Catch clause is okay, and so is jumping around
-    inside a Try clause.  In many cases where one is tempted to return
-    from a Try clause, it will suffice to use Throw, and then return
-    from the Catch clause.  Another option is to set a flag variable and
-    use goto to jump to the end of the Try clause, then check the flag
-    after the Try/Catch statement.
-
-    IMPORTANT: The values of any non-volatile automatic variables
-    changed within the Try clause are undefined after an exception is
-    caught.  Therefore, variables modified inside the Try block whose
-    values are needed later outside the Try block must either use static
-    storage or be declared with the "volatile" type qualifier.
+    inside a Try clause.  Also note that the values of any non-volatile
+    automatic variables changed within the Try clause are undefined
+    after an exception is caught.
 
 
 Throw expression;
@@ -158,8 +149,8 @@
     be compatible with the type passed to define_exception_type().  The
     exception must be caught, otherwise the program may crash.
 
-    Slight limitation:  If the expression is a comma-expression it must
-    be enclosed in parentheses.
+    Slight limitation:  The expression cannot be a comma-expression (but
+    no one would want to use a comma-expression here anyway).
 
 
 Try statement
diff --git a/libpng.3 b/libpng.3
index 32fbfa2..ae12949 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "June 24, 2000"
+.TH LIBPNG 3 "June 9, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7beta17
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7rc1
 .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.7beta17 - June 24, 2000
+ libpng version 1.0.7rc1 - June 9, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -3379,13 +3379,13 @@
 
 .SH VII. Y2K Compliance in libpng
 
-June 24, 2000
+June 9, 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.7beta17 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.7rc1 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
@@ -3526,7 +3526,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.0.7beta17 - June 24, 2000:
+Libpng version 1.0.7rc1 - June 9, 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 @@
 Copyright (c) 1996, 1997 Andreas Dilger
 (libpng versions 0.89c, May 1996, through 0.96, May 1997)
 Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
-(libpng versions 0.97, January 1998, through 1.0.7beta17, June 24, 2000)
+(libpng versions 0.97, January 1998, through 1.0.7rc1, June 9, 2000)
 
 For the purposes of this copyright and license, "Contributing Authors"
 is defined as the following set of individuals:
diff --git a/libpng.txt b/libpng.txt
index 21938d4..4291714 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.7beta17 - June 24, 2000
+ libpng version 1.0.7rc1 - June 9, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -2632,13 +2632,13 @@
 
 VII. Y2K Compliance in libpng
 
-June 24, 2000
+June 9, 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.7beta17 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.7rc1 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 40b99b8..852a19d 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "June 24, 2000"
+.TH LIBPNGPF 3 "June 9, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7beta17
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7rc1
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/msvc/README.txt b/msvc/README.txt
index 3a282e0..d6eb6c3 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.7beta17 (June 24, 2000) and zlib
+libpng 1.0.7rc1 (June 9, 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/libpng.dsp b/msvc/libpng.dsp
index 1fb6b26..846dabc 100644
--- a/msvc/libpng.dsp
+++ b/msvc/libpng.dsp
@@ -105,7 +105,7 @@
 MTL=midl.exe
 RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /i ".." /d "NDEBUG" /d "PNG_USE_PNGVCRD"
+# ADD RSC /l 0x409 /i ".." /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -133,7 +133,7 @@
 MTL=midl.exe
 RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /i ".." /d "_DEBUG" /d PNG_DEBUG=1  /d "PNG_USE_PNGVCRD"
+# ADD RSC /l 0x409 /i ".." /d "_DEBUG" /d PNG_DEBUG=1
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
diff --git a/msvc/png.rc b/msvc/png.rc
index dec02e5..fc037e7 100644
--- a/msvc/png.rc
+++ b/msvc/png.rc
@@ -12,14 +12,6 @@
 #  error PRIVATEBUILD or SPECIALBUILD must be defined as a string describing the type of change brought to the standard library
 #endif /* defined(DLLFNAME_POSTFIX)... */
 
-#if !defined(DLLFNAME_POSTFIX) && defined(PNG_USE_PNGVCRD)
-#  if defined(PNG_DEBUG) && (PNG_DEBUG > 0)
-#    define DLLFNAME_POSTFIX "B"
-#  else
-#    define DLLFNAME_POSTFIX "A"
-#  endif /* !defined(DLLFNAME_POSTFIX)... */
-#endif
-
 #if defined(PNG_DEBUG) && (PNG_DEBUG > 0)
 #  define VS_DEBUG VS_FF_DEBUG
 #  ifndef DLLFNAME_POSTFIX
@@ -30,9 +22,7 @@
 #  endif /* COMMENTS */
 #else
 #  define VS_DEBUG 0
-#  ifndef DLLFNAME_POSTFIX
-#     define DLLFNAME_POSTFIX
-#  endif /* DLLFNAME_POSTFIX */
+#  define DLLFNAME_POSTFIX
 #endif /* defined(DEBUG)... */
 
 #ifdef PRIVATEBUILD
diff --git a/msvc/png32ms.def b/msvc/png32ms.def
index b4c05be..a130cbb 100644
--- a/msvc/png32ms.def
+++ b/msvc/png32ms.def
@@ -1,12 +1,12 @@
 ;------------------------------------------
-; LIBPNG module definition file for Windows
+; PNGLIB module definition file for Windows
 ;------------------------------------------
 
 LIBRARY
 DESCRIPTION "PNG image compression library for Windows"
 
 EXPORTS
-;Version 1.0.7beta17
+;Version 1.0.7rc1
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
diff --git a/png.5 b/png.5
index ae87d93..c83797b 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "June 24, 2000"
+.TH PNG 5 "June 9, 2000"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 986ecd9..6d227e4 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.0.7beta17 - June 24, 2000
+ * libpng version 1.0.7rc1 - June 9, 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.)
@@ -14,14 +14,14 @@
 #include "png.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_7beta17 Your_png_h_is_not_version_1_0_7beta17;
+typedef version_1_0_7rc1 Your_png_h_is_not_version_1_0_7rc1;
 
 /* 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.7beta17";
+char png_libpng_ver[12] = "1.0.7rc1";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -605,7 +605,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ("\n libpng version 1.0.7beta17 - June 24, 2000\n\
+   return ("\n libpng version 1.0.7rc1 - June 9, 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");
@@ -623,8 +623,8 @@
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return("1.0.7beta17");
-   return("1.0.7beta17");
+      return("1.0.7rc1");
+   return("1.0.7rc1");
 }
 
 png_charp PNGAPI
diff --git a/png.h b/png.h
index c38dbb0..8e18bf1 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.0.7beta17 - June 24, 2000
+ * libpng version 1.0.7rc1 - June 9, 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.7beta17 - June 24, 2000: Glenn
+ *  libpng versions 0.97, January 1998, through 1.0.7rc1 - June 9, 2000: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -52,8 +52,8 @@
  *    1.0.6h                        10007  10.6h (testing xy.z so-numbering)
  *    1.0.6i                        10007  10.6i
  *    1.0.6j                        10007  2.1.0.6j (incompatible with 1.0.0)
- *    1.0.7beta11-17                10007  2.1.0.7beta11-17 (binary compatible)
- *    1.0.7rc1-2                    10007  2.1.0.7rc1-2 (binary compatible)
+ *    1.0.7beta11-16                10007  2.1.0.7beta11-16 (binary compatible)
+ *    1.0.7rc1                      10007  2.1.0.7rc1 (binary compatible)
  *    planned:
  *    1.0.6patch4 (w/4 patches)     10006  2.1.0.6 (binary compatible)
  *    1.0.7                         10007  (still compatible)
@@ -83,7 +83,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.0.6, March 20, 2000, through 1.0.7beta17, June 24, 2000, are
+ * libpng versions 1.0.6, March 20, 2000, through 1.0.7rc1, June 9, 2000, are
  * Copyright (c) 2000 Glenn Randers-Pehrson
  * Distributed according to the same disclaimer and license as libpng-1.0.5
  * with the following individuals added to the list of Contributing Authors:
@@ -179,13 +179,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    June 24, 2000
+ *    June 9, 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.7beta17 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.0.7rc1 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
@@ -231,8 +231,8 @@
  *       PNG Development Group
  */
 
-#ifndef PNG_H
-#define PNG_H
+#ifndef _PNG_H
+#define _PNG_H
 
 /* This is not the place to learn how to use libpng.  The file libpng.txt
  * describes how to use libpng, and the file example.c summarizes it
@@ -241,7 +241,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.0.7beta17"
+#define PNG_LIBPNG_VER_STRING "1.0.7rc1"
 
 #define PNG_LIBPNG_VER_SONUM   2
 
@@ -251,7 +251,7 @@
 #define PNG_LIBPNG_VER_RELEASE 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   17
+#define PNG_LIBPNG_VER_BUILD   1
 
 /* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
  * We must not include leading zeros.
@@ -1140,9 +1140,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.7beta17
+and png.h are both at * version 1.0.7rc1
  */
-typedef png_structp version_1_0_7beta17;
+typedef png_structp version_1_0_7rc1;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2161,7 +2161,7 @@
 extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.0.7beta17 - June 24, 2000 (header)\n"
+   " libpng version 1.0.7rc1 - June 9, 2000 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
@@ -2955,4 +2955,4 @@
 
 #endif /* PNG_VERSION_INFO_ONLY */
 /* do not put anything past this line */
-#endif /* PNG_H */
+#endif /* _PNG_H */
diff --git a/pngasmrd.h b/pngasmrd.h
index 0933650..96585c7 100644
--- a/pngasmrd.h
+++ b/pngasmrd.h
@@ -1,14 +1,11 @@
 /* pngasmrd.h - assembler version of utilities to read a PNG file
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1999, 2000 Glenn Randers-Pehrson
  *
  */
 
-#ifndef PNGASMRD_H
-#define PNGASMRD_H
-
 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
 
 /* Set this in the makefile for VC++ on Pentium, not in pngconf.h */
@@ -36,4 +33,3 @@
  */
 
 #endif
-#endif /* PNGASMRD_H */
diff --git a/pngconf.h b/pngconf.h
index b6ada56..0df5b29 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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)
@@ -133,7 +133,7 @@
 
 #  ifdef __linux__
 #    ifdef _BSD_SOURCE
-#      define PNG_SAVE_BSD_SOURCE
+#      define _PNG_SAVE_BSD_SOURCE
 #      undef _BSD_SOURCE
 #    endif
 #    ifdef _SETJMP_H
@@ -146,9 +146,9 @@
 #include <setjmp.h>
 
 #  ifdef __linux__
-#    ifdef PNG_SAVE_BSD_SOURCE
+#    ifdef _PNG_SAVE_BSD_SOURCE
 #      define _BSD_SOURCE
-#      undef PNG_SAVE_BSD_SOURCE
+#      undef _PNG_SAVE_BSD_SOURCE
 #    endif
 #  endif /* __linux__ */
 #endif /* PNG_SETJMP_SUPPORTED */
@@ -950,15 +950,7 @@
 #  endif
 #endif
 
-#ifndef PNGAPI
-
-#if defined(__MINGW32__) || defined(__CYGWIN32__) && !defined(PNG_MODULEDEF)
-#  ifndef PNG_NO_MODULEDEF
-#    define PNG_NO_MODULEDEF
-#  endif
-#endif
-
-#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
+#if defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
 #  define PNG_IMPEXP
 #endif
 
@@ -966,11 +958,7 @@
     defined(_Windows) || defined(_WINDOWS) || \
     defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
 
-#  ifdef __GNUC__
-#    define PNGAPI __cdecl
-#  else
-#    define PNGAPI _cdecl
-#  endif
+#  define PNGAPI _cdecl
 
 #  if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \
        0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */)
@@ -1006,17 +994,19 @@
 #        endif
 #     endif
 #  endif  /* PNG_IMPEXP */
-#else /* !(DLL || WINDOWS) */
+#else
 #  if 0 /* ... other platforms, with other meanings */
 #  else
 #     define PNGAPI
-#     define PNG_IMPEXP
 #  endif
 #endif
-#endif
 
 #ifndef PNG_EXPORT
-#  define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
+#  define PNG_EXPORT(type,symbol) type PNGAPI symbol
+#endif
+
+#if defined(__MINGW32__) || defined(__CYGWIN32__)
+#  define PNG_ATTR_DLLIMP
 #endif
 
 #ifdef PNG_USE_GLOBAL_ARRAYS
diff --git a/pngerror.c b/pngerror.c
index d56aecb..51a094b 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 88d027c..2a0a682 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 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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
@@ -43,8 +43,8 @@
  */
 
 /*
- * NOTES (mostly by Greg Roelofs)
- * =====
+ * GRR NOTES
+ * =========
  *
  * 19991006:
  *  - fixed sign error in post-MMX cleanup code (16- & 32-bit cases)
@@ -125,10 +125,9 @@
  * 20000319:
  *  - fixed a register-name typo in png_do_read_interlace(), default (MMX) case,
  *     pass == 4 or 5, that caused visible corruption of interlaced images
- *
- *  - When compiling with gcc, be sure to use  -fomit-frame-pointer
  */
 
+
 #define PNG_INTERNAL
 #include "png.h"
 
@@ -144,9 +143,8 @@
 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,
-// so define them without:
-#if (defined __DJBPP__) || defined (WIN32)
+// djgpp adds its own underscores to global variables, so define them without:
+#ifdef __DJGPP__
 #  define _unmask      unmask
 #  define _const4      const4
 #  define _const6      const6
diff --git a/pngget.c b/pngget.c
index c9574a6..c6a3f78 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 73f4554..4383470 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 6bae659..2a66d70 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 c5c3317..c960cc8 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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.7beta17
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.7rc1
  */
 
 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.7beta17
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.7rc1
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index c5008e8..52a9bb7 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 aa67150..05b1a30 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.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 8795a31..56a6f71 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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)
@@ -224,18 +224,8 @@
          }
       }
       if (ret != Z_STREAM_END)
-      {
-#if !defined(PNG_NO_STDIO)
-         char umsg[50];
-
-         sprintf(umsg,"Incomplete compressed datastream in %s chunk",
-             png_ptr->chunk_name);
-         png_warning(png_ptr, umsg);
-#else
          png_warning(png_ptr,
-            "Incomplete compressed datastream in chunk other than IDAT");
-#endif
-      }
+         "End of datastream not found in a compressed chunk (other than IDAT)");
 
       inflateReset(&png_ptr->zstream);
       png_ptr->zstream.avail_in = 0;
@@ -244,7 +234,7 @@
       chunkdata = text;
       *newlength=text_size;
    }
-   else /* if (comp_type != PNG_TEXT_COMPRESSION_zTXt) */
+   else /* if (comp_type >= PNG_TEXT_COMPRESSION_LAST) */
    {
 #if !defined(PNG_NO_STDIO)
       char umsg[50];
diff --git a/pngset.c b/pngset.c
index 6f3c897..7cfbc68 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 22b316c..38624cb 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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)
@@ -1159,7 +1159,7 @@
    fprintf(STDERR," library (%lu):%s", png_access_version_number(),
       png_get_header_version(NULL));
    /* Show the version of libpng used in building the application */
-   fprintf(STDERR," pngtest (%lu):%s", (unsigned long)PNG_LIBPNG_VER,
+   fprintf(STDERR," pngtest (%lu):%s", PNG_LIBPNG_VER,
       PNG_HEADER_VERSION_STRING);
    fprintf(STDERR," sizeof(png_struct)=%d, sizeof(png_info)=%d\n",
                     sizeof(png_struct), sizeof(png_info));
@@ -1392,4 +1392,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_7beta17 your_png_h_is_not_version_1_0_7beta17;
+typedef version_1_0_7rc1 your_png_h_is_not_version_1_0_7rc1;
diff --git a/pngtrans.c b/pngtrans.c
index 3c20be8..469f69c 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.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 379c421..6151391 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 661bebd..d51fa4a 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 a2cf79a..a0ffc4f 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 7a63132..2d9d9d1 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.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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 1a4da53..5423f94 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.0.7beta17 - June 24, 2000
+ * libpng 1.0.7rc1 - June 9, 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-amiga-wolf.txt b/scripts/makefile-amiga-wolf.txt
new file mode 100644
index 0000000..4587088
--- /dev/null
+++ b/scripts/makefile-amiga-wolf.txt
@@ -0,0 +1,48 @@
+# Commodore Amiga Makefile
+# makefile for libpng and SAS C V6.5x compiler
+# Copyright (C) 1995-2000 Wolf Faust
+# For conditions of distribution and use, see copyright notice in png.h
+#
+# Note: Use #define PNG_READ_BIG_ENDIAN_SUPPORTED in pngconf.h
+#
+# Location/path of zlib include files
+ZLIB=/zlib
+#compiler
+CC=sc
+#compiler flags
+# WARNING: a bug in V6.51 causes bad code with OPTGO
+#          So use V6.55 or set NOOPTGO!!!!!!!!!
+CFLAGS= NOSTKCHK PARMS=REG OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL\
+	OPTLOOP OPTRDEP=4 OPTDEP=4 OPTCOMP=4 INCLUDEDIR=$(ZLIB) \
+	DEFINE=PNG_INTERNAL 
+#linker flags
+LDFLAGS= SD ND BATCH
+#link libs
+LDLIBS= libpng.lib libgz.lib LIB:scm.lib LIB:sc.lib Lib:amiga.lib
+# linker
+LN= slink
+# file deletion command
+RM= delete quiet
+# library (.lib) file creation command
+AR= oml
+# make directory command
+MKDIR= makedir
+
+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
+
+all: libpng.lib pngtest
+
+libpng.lib: $(OBJS)
+-$(RM) libpng.lib
+$(AR) libpng.lib r $(OBJS)
+
+pngtest: pngtest.o libpng.lib
+$(LN) <WITH <
+$(LDFLAGS)
+TO pngtest
+FROM LIB:c.o pngtest.o
+LIB $(LDLIBS)
+<
+
diff --git a/scripts/makefile.amiga b/scripts/makefile.amiga
index 4587088..f92af3e 100644
--- a/scripts/makefile.amiga
+++ b/scripts/makefile.amiga
@@ -1,20 +1,15 @@
 # Commodore Amiga Makefile
-# makefile for libpng and SAS C V6.5x compiler
-# Copyright (C) 1995-2000 Wolf Faust
+# makefile for libpng and SAS C V6.55 compiler
+# Copyright (C) 1995 Wolf Faust
 # For conditions of distribution and use, see copyright notice in png.h
-#
-# Note: Use #define PNG_READ_BIG_ENDIAN_SUPPORTED in pngconf.h
-#
-# Location/path of zlib include files
-ZLIB=/zlib
+
 #compiler
 CC=sc
 #compiler flags
 # WARNING: a bug in V6.51 causes bad code with OPTGO
 #          So use V6.55 or set NOOPTGO!!!!!!!!!
 CFLAGS= NOSTKCHK PARMS=REG OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL\
-	OPTLOOP OPTRDEP=4 OPTDEP=4 OPTCOMP=4 INCLUDEDIR=$(ZLIB) \
-	DEFINE=PNG_INTERNAL 
+	OPTLOOP OPTRDEP=4 OPTDEP=4 OPTCOMP=4 DEFINE=PNG_INTERNAL
 #linker flags
 LDFLAGS= SD ND BATCH
 #link libs
@@ -28,9 +23,8 @@
 # make directory command
 MKDIR= makedir
 
-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
+OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngpread.o \
+pngread.o pngerror.o pngwrite.o pngrtran.o pngwtran.o pngrio.o pngwio.o pngmem.o
 
 all: libpng.lib pngtest
 
@@ -46,3 +40,4 @@
 LIB $(LDLIBS)
 <
 
+
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index dc7b587..dc35934 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.7beta17
+PNGMIN = 1.0.7rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # where make install puts libpng.a, libpng.so*, and png.h
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index 6ed1f43..97eceaa 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.7beta17
+PNGMIN = 1.0.7rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=cc
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 083bf6f..d5d2478 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -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.7beta17
+PNGMIN = 1.0.7rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 5aadc47..f4a1366 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.7beta17
+PNGMIN = 1.0.7rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index 8c543cf..34ec2c4 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.7beta17
+PNGMIN = 1.0.7rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 72d5d37..ff45572 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.7beta17
-LIBS=libpng.so.1.0.7beta17
+VER=1.0.7rc1
+LIBS=libpng.so.1.0.7rc1
 SHAREDLIB=libpng.so
 libdir=$(prefix)/lib32
 
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 81f78b3..9f8e776 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.7beta17
+PNGMIN = 1.0.7rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index 914edbd..c63ce02 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -5,7 +5,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.0.7beta17';
+  PNG_LIBPNG_VER_STRING = '1.0.7rc1';
   PNG_LIBPNG_VER        =  10007;
 
 type
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index dcb9a32..42fc57f 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -1,5 +1,5 @@
 ;----------------------------------------
-; PNG.LIB module definition file for OS/2
+; PNGLIB module definition file for OS/2
 ;----------------------------------------
 
 ; Caution: This file is probably out of date.
