Imported from libpng-1.0.6j.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index d9149c1..636caf0 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.0.6i - May 1, 2000
+Libpng 1.0.6j - May 4, 2000
 
 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.
@@ -43,7 +43,8 @@
 version 1.0.6h [April 24, 2000]
   Changed shared library so-number pattern from 2.x.y.z to xy.z (this builds
     libpng.so.10 & libpng.so.10.6h instead of libpng.so.2 & libpng.so.2.1.0.6h)
-version 1.0.6i [May 1, 2000]
+    This is a temporary change for test purposes.
+version 1.0.6i [May 3, 2000]
   Added documentation of user memory functions in libpng.txt/libpng.3
   Modified png_read_png so that it will use user_allocated row_pointers
     if present, unless free_me directs that it be freed, and added description
@@ -58,6 +59,11 @@
     directly instead of using png_create_*(), as authors were instructed to
     do in libpng-0.88 and earlier.
   Added makefile.intel and updated makefile.watcom (Pawel Mrochen)
+version 1.0.6j [May 4, 2000]
+  Overloaded png_read_init() and png_write_init() with macros that convert
+    calls to png_read_init_2() or png_write_init_2() that check the version
+    and structure sizes.
+  Restored original shared library so-number pattern (2.x.y.z)
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index bdbf680..b2d954f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -699,7 +699,8 @@
 version 1.0.6h [April 24, 2000]
   Changed shared library so-number pattern from 2.x.y.z to xy.z (this builds
     libpng.so.10 & libpng.so.10.6h instead of libpng.so.2 & libpng.so.2.1.0.6h)
-version 1.0.6i [May 1, 2000]
+    This is a temporary change for test purposes.
+version 1.0.6i [May 2, 2000]
   Rearranged some members at the end of png_info and png_struct, to put
     unknown_chunks_num and free_me within the original size of the png_structs
     and free_me, png_read_user_fn, and png_free_fn within the original png_info,
@@ -724,6 +725,11 @@
     generate a libpng error if the modes aren't set and PNG_LEGACY_SUPPORTED
     was not defined.
   Added makefile.intel and updated makefile.watcom (Pawel Mrochen)
+version 1.0.6j [May 4, 2000]
+  Overloaded png_read_init() and png_write_init() with macros that convert
+    calls to png_read_init_2() or png_write_init_2() that check the version
+    and structure sizes.
+
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index 088e67f..b269b66 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.0.6i - May 1, 2000
+Installing libpng version 1.0.6j - May 4, 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.6i" or "lpng106" and "zlib-1.1.3"
+might be called "libpng-1.0.6j" or "lpng106" and "zlib-1.1.3"
 or "zlib113") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -47,8 +47,8 @@
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6i)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6i,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6j)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6j,
                        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
@@ -59,9 +59,9 @@
  makefile.ibmc     =>  IBM C/C++ version 3.x for Win32 and OS/2 (static)
  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.6i)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.6j)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.6i)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.6j)
  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 6bd8d9e..07b4ab1 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -16,7 +16,7 @@
    Applications that use png_create_*() instead of png_ptr=malloc(...)
    are immune to this problem.
 
-   STATUS:  Fixed in libpng-1.0.6ad, libpng-1.0.6i, and patch-d
+   STATUS:  Fixed in libpng-1.0.6ad, libpng-1.0.6j, and patch-d
    which are currently being tested by the PNG group.
    The fix necessarily reintroduces a binary incompatibility with any
    application that makes direct access to the png_info and
@@ -41,7 +41,7 @@
    png_info structures, so libpng-1.0.6 will be patched to work around
    this problem.
 
-   STATUS:  Fixed in libpng-1.0.6g and patch-d, which are currently being
+   STATUS:  Fixed in libpng-1.0.6j and patch-d, which are currently being
    tested by the PNG group.  Users can work around the problem without
    patching libpng by recompiling their applications.
 
diff --git a/LICENSE b/LICENSE
index a904f20..0ee8fe3 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.6i, May 1, 2000)
+(libpng versions 0.97, January 1998, through 1.0.6j, May 4, 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
-May 1, 2000
+May 4, 2000
diff --git a/README b/README
index d6b7d53..f2da192 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.0.6i - May 1, 2000 (shared library 2.1)
+README for libpng 1.0.6j - May 4, 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.
@@ -172,9 +172,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.6i)
+                            (gcc, creates libpng.so.2.1.0.6j)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng.so.2.1.0.6i, uses assembler code
+                            libpng.so.2.1.0.6j, 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
@@ -185,10 +185,10 @@
        makefile.ibmc    =>  IBM C/C++ version 3.x for Win32 and OS/2 (static)
        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.6i)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.6j)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng.so.2.1.0.6i)
+                            (gcc, creates libpng.so.2.1.0.6j)
        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 f5f22f9..71f5f30 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      May 1, 2000
+      May 4, 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.6i are Y2K compliant.  It is my belief that earlier
+      upward through 1.0.6j 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 eee28bb..363ac61 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.0.6i.  Instead, please
+  There is no \"configure\" script for Libpng-1.0.6j.  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 461e395..1d6c34b 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "May 1, 2000"
+.TH LIBPNG 3 "May 4, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6i
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6j
 .SH SYNOPSIS
 \fI\fB
 
@@ -725,7 +725,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.0.6i - May 1, 2000
+ libpng version 1.0.6j - May 4, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -3287,13 +3287,13 @@
 
 .SH VII. Y2K Compliance in libpng
 
-May 1, 2000
+May 4, 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.6i are Y2K compliant.  It is my belief that earlier
+upward through 1.0.6j 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
@@ -3434,7 +3434,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.0.6i - May 1, 2000:
+Libpng version 1.0.6j - May 4, 2000:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3449,7 +3449,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.6i, May 1, 2000)
+(libpng versions 0.97, January 1998, through 1.0.6j, May 4, 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 e763a3f..1739737 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.6i - May 1, 2000
+ libpng version 1.0.6j - May 4, 2000
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -2562,13 +2562,13 @@
 
 VII. Y2K Compliance in libpng
 
-May 1, 2000
+May 4, 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.6i are Y2K compliant.  It is my belief that earlier
+upward through 1.0.6j 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 66f2a11..210d504 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "May 1, 2000"
+.TH LIBPNGPF 3 "May 4, 2000"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6i
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6j
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index b0f600e..5118788 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "May 1, 2000"
+.TH PNG 5 "May 4, 2000"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 9823edc..1daccd7 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.0.6i - May 1, 2000
+ * libpng version 1.0.6j - May 4, 2000
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -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_6i Your_png_h_is_not_version_1_0_6i;
+typedef version_1_0_6j Your_png_h_is_not_version_1_0_6j;
 
 /* 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.6i";
+char png_libpng_ver[12] = "1.0.6j";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -583,7 +583,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ("\n libpng version 1.0.6i - May 1, 2000\n\
+   return ("\n libpng version 1.0.6j - May 4, 2000\n\
    Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n\
    Copyright (c) 1996, 1997 Andreas Dilger\n\
    Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson\n");
@@ -601,8 +601,8 @@
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return("1.0.6i");
-   return("1.0.6i");
+      return("1.0.6j");
+   return("1.0.6j");
 }
 
 png_charp
diff --git a/png.h b/png.h
index 863b412..4799709 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.0.6i - May 1, 2000
+ * libpng version 1.0.6j - May 4, 2000
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -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.6i - May 1, 2000: Glenn
+ *  libpng versions 0.97, January 1998, through 1.0.6j - May 4, 2000: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -20,39 +20,40 @@
  *    The following table summarizes matters since version 0.89c, which was
  *    the first widely used release:
  *
- *    source                   png.h    png.h   shared-lib
- *    version                  string     int   version
- *    -------                  ------   -----  ----------
- *    0.89c ("1.0 beta 3")     0.89        89  1.0.89
- *    0.90  ("1.0 beta 4")     0.90        90  0.90  [should have been 2.0.90]
- *    0.95  ("1.0 beta 5")     0.95        95  0.95  [should have been 2.0.95]
- *    0.96  ("1.0 beta 6")     0.96        96  0.96  [should have been 2.0.96]
- *    0.97b ("1.00.97 beta 7") 1.00.97     97  1.0.1 [should have been 2.0.97]
- *    0.97c                    0.97        97  2.0.97
- *    0.98                     0.98        98  2.0.98
- *    0.99                     0.99        98  2.0.99
- *    0.99a-m                  0.99        99  2.0.99
- *    1.00                     1.00       100  2.1.0 [100 should be 10000]
- *    1.0.0                    1.0.0      100  2.1.0 [100 should be 10000]
- *    1.0.1                    1.0.1    10001  2.1.0
- *    1.0.1a-e                 1.0.1a-e 10002  2.1.0.1a-e
- *    1.0.2                    1.0.2    10002  2.1.0.2
- *    1.0.2a-b                 1.0.2a-b 10003  2.1.0.2a-b
- *    1.0.3                    1.0.3    10003  2.1.0.3
- *    1.0.3a-d                 1.0.3a-d 10004  2.1.0.3a-d
- *    1.0.4                    1.0.4    10004  2.1.0.4
- *    1.0.4a-f                 1.0.4a-f 10005  2.1.0.4a-f
- *    1.0.5 (+ 2 patches)      1.0.5    10005  2.1.0.5
- *    1.0.5a-d                 1.0.5a-d 10006  2.1.0.5a-d
- *    1.0.5e-r                 1.0.5e-r 10100  2.1.0.5e-r (not source compatible)
- *    1.0.5s-v                 1.0.5s-v 10006  2.1.0.5s-v (not binary compatible)
- *    1.0.6 (+ 3 patches)      1.0.6    10006  2.1.0.6    (still binary incompat)
- *    1.0.6d-f                 1.0.6d-f 10007  2.1.0.6d-f (still binary incompat)
- *    1.0.6g                   1.0.6g   10007  2.1.0.6g
- *    1.0.6h                   1.0.6h   10007  10.6h
- *    1.0.6 (+ 4 patches)      1.0.6    10006  2.1.0.6ad  (compatible with 1.0.0)
- *    1.0.6i                   1.0.6i   10007  10.6i (can be compatible w/ 1.0.0)
- *    1.0.7                    1.0.7    10007  10.7  (still can be compatible)
+ *    source                 png.h    png.h  shared-lib
+ *    version                string     int  version
+ *    -------                ------   -----  ----------
+ *    0.89c "1.0 beta 3"     0.89        89  1.0.89
+ *    0.90  "1.0 beta 4"     0.90        90  0.90  [should have been 2.0.90]
+ *    0.95  "1.0 beta 5"     0.95        95  0.95  [should have been 2.0.95]
+ *    0.96  "1.0 beta 6"     0.96        96  0.96  [should have been 2.0.96]
+ *    0.97b "1.00.97 beta 7" 1.00.97     97  1.0.1 [should have been 2.0.97]
+ *    0.97c                  0.97        97  2.0.97
+ *    0.98                   0.98        98  2.0.98
+ *    0.99                   0.99        98  2.0.99
+ *    0.99a-m                0.99        99  2.0.99
+ *    1.00                   1.00       100  2.1.0 [100 should be 10000]
+ *    1.0.0                  1.0.0      100  2.1.0 [100 should be 10000]
+ *    1.0.1                  1.0.1    10001  2.1.0
+ *    1.0.1a-e               1.0.1a-e 10002  2.1.0.1a-e
+ *    1.0.2                  1.0.2    10002  2.1.0.2
+ *    1.0.2a-b               1.0.2a-b 10003  2.1.0.2a-b
+ *    1.0.3                  1.0.3    10003  2.1.0.3
+ *    1.0.3a-d               1.0.3a-d 10004  2.1.0.3a-d
+ *    1.0.4                  1.0.4    10004  2.1.0.4
+ *    1.0.4a-f               1.0.4a-f 10005  2.1.0.4a-f
+ *    1.0.5 (+ 2 patches)    1.0.5    10005  2.1.0.5
+ *    1.0.5a-d               1.0.5a-d 10006  2.1.0.5a-d
+ *    1.0.5e-r               1.0.5e-r 10100  2.1.0.5e-r (not source compatible)
+ *    1.0.5s-v               1.0.5s-v 10006  2.1.0.5s-v (not binary compatible)
+ *    1.0.6 (+ 3 patches)    1.0.6    10006  2.1.0.6    (still binary incompat)
+ *    1.0.6d-f               1.0.6d-f 10007  2.1.0.6d-f (still binary incompat)
+ *    1.0.6g                 1.0.6g   10007  2.1.0.6g
+ *    1.0.6h                 1.0.6h   10007  10.6h  (testing xy.z so-numbering)
+ *    1.0.6i                 1.0.6i   10007  10.6i (can be compatible w/ 1.0.0)
+ *    1.0.6j                 1.0.6j   10007  2.1.0.6j   (compatible with 1.0.0)
+ *    1.0.6 (+ 4 patches)    1.0.6    10006  2.1.0.6ad  (compatible with 1.0.0)
+ *    1.0.7                  1.0.7    10007  2.1.0.7    (still compatible)
  *
  *    Henceforth the source version will match the shared-library major
  *    and minor numbers; the shared-library major version number will be
@@ -81,7 +82,7 @@
  * Copyright (c) 1996, 1997 Andreas Dilger
  * (libpng versions 0.89c, June 1996, through 0.96, May 1997)
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
- * (libpng versions 0.97, January 1998, through 1.0.6i, May 1, 2000)
+ * (libpng versions 0.97, January 1998, through 1.0.6j, May 4, 2000)
  *
  * For the purposes of this copyright and license, "Contributing Authors"
  * is defined as the following set of individuals:
@@ -156,13 +157,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    May 1, 2000
+ *    May 4, 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.6i are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.0.6j 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
@@ -240,7 +241,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.0.6i"
+#define PNG_LIBPNG_VER_STRING "1.0.6j"
 
 /* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
  * We must not include leading zeros.
@@ -1100,9 +1101,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.6i
+and png.h are both at * version 1.0.6j
  */
-typedef png_structp version_1_0_6i;
+typedef png_structp version_1_0_6j;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2102,7 +2103,7 @@
 extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.0.6i - May 1, 2000 (header)\n"
+   " libpng version 1.0.6j - May 4, 2000 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
@@ -2333,11 +2334,21 @@
  * (old interface - NOT DLL EXPORTED).
  */
 extern void png_read_init PNGARG((png_structp png_ptr));
+#define png_read_init(png_ptr) png_read_init_2(png_ptr, \
+    PNG_LIBPNG_VER_STRING,  sizeof(png_struct), sizeof(png_info));
+extern void png_read_init_2 PNGARG((png_structp png_ptr,
+    png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
+    png_info_size));
 
 /* Initialize png_ptr struct for writing, and allocate any other memory.
  * (old interface - NOT DLL EXPORTED).
  */
 extern void png_write_init PNGARG((png_structp png_ptr));
+#define png_write_init(png_ptr) png_write_init_2(png_ptr, \
+    PNG_LIBPNG_VER_STRING, sizeof(png_struct), sizeof(png_info));
+extern void png_write_init_2 PNGARG((png_structp png_ptr,
+    png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
+    png_info_size));
 
 /* Allocate memory for an internal libpng struct */
 PNG_EXTERN png_voidp png_create_struct PNGARG((int type));
diff --git a/pngasmrd.h b/pngasmrd.h
index 98b81b2..f7c1e5b 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.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1999, 2000 Glenn Randers-Pehrson
  *
diff --git a/pngconf.h b/pngconf.h
index b40143d..d134f61 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
@@ -17,37 +17,6 @@
 #ifndef PNGCONF_H
 #define PNGCONF_H
 
-/* The following support, added at version 1.0.6, will be turned on by
- * default in version 2.0.0.
- * They have been turned off here in case you need binary compatibility
- * with old applications that require the length of png_struct and
- * png_info to remain at the old length.
- */
-
-
-#ifdef PNG_LEGACY_SUPPORTED
-#define PNG_NO_FREE_ME
-#define PNG_NO_READ_UNKNOWN_CHUNKS
-#define PNG_NO_WRITE_UNKNOWN_CHUNKS
-#define PNG_NO_READ_USER_CHUNKS
-#define PNG_NO_READ_iCCP
-#define PNG_NO_WRITE_iCCP
-#define PNG_NO_READ_sCAL
-#define PNG_NO_WRITE_sCAL
-#define PNG_NO_READ_sPLT
-#define PNG_NO_WRITE_sPLT
-#define PNG_NO_INFO_IMAGE
-#define PNG_NO_READ_RGB_TO_GRAY
-#define PNG_NO_READ_USER_TRANSFORM
-#define PNG_NO_WRITE_USER_TRANSFORM
-#define PNG_NO_USER_MEM
-#define PNG_NO_READ_EMPTY_PLTE
-#endif
-
-#ifndef PNG_NO_FREE_ME
-#define PNG_FREE_ME_SUPPORTED
-#endif
-
 /* This is the size of the compression buffer, and thus the size of
  * an IDAT chunk.  Make this whatever size you feel is best for your
  * machine.  One of these will be allocated per png_struct.  When this
@@ -298,6 +267,31 @@
    1.0.1c, for consistency)
  */
 
+/* The following support, added after version 1.0.0, can be turned off here en
+ * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility
+ * with old applications that require the length of png_struct and png_info
+ * to remain unchanged.
+ */
+
+#ifdef PNG_LEGACY_SUPPORTED
+#define PNG_NO_FREE_ME
+#define PNG_NO_READ_UNKNOWN_CHUNKS
+#define PNG_NO_WRITE_UNKNOWN_CHUNKS
+#define PNG_NO_READ_USER_CHUNKS
+#define PNG_NO_READ_iCCP
+#define PNG_NO_WRITE_iCCP
+#define PNG_NO_READ_sCAL
+#define PNG_NO_WRITE_sCAL
+#define PNG_NO_READ_sPLT
+#define PNG_NO_WRITE_sPLT
+#define PNG_NO_INFO_IMAGE
+#define PNG_NO_READ_RGB_TO_GRAY
+#define PNG_NO_READ_USER_TRANSFORM
+#define PNG_NO_WRITE_USER_TRANSFORM
+#define PNG_NO_USER_MEM
+#define PNG_NO_READ_EMPTY_PLTE
+#endif
+
 #ifndef PNG_NO_FLOATING_POINT_SUPPORTED 
 #define PNG_FLOATING_POINT_SUPPORTED
 #endif
@@ -308,6 +302,10 @@
 #define PNG_FIXED_POINT_SUPPORTED
 #endif
 
+#ifndef PNG_NO_FREE_ME
+#define PNG_FREE_ME_SUPPORTED
+#endif
+
 #if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \
     !defined(PNG_NO_READ_TRANSFORMS)
 #define PNG_READ_TRANSFORMS_SUPPORTED
@@ -381,9 +379,11 @@
               /* still have interlacing unless you change the following line: */
 #define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */
 
-#ifndef PNG_NO_READ_COMPOSITED_NODIV
+#ifndef PNG_NO_READ_COMPOSITE_NODIV
+#ifndef PNG_NO_READ_COMPOSITED_NODIV  /* libpng-1.0.x misspelling */
 #define PNG_READ_COMPOSITE_NODIV_SUPPORTED    /* well tested on Intel and SGI */
 #endif
+#endif
 
 #ifndef PNG_NO_READ_EMPTY_PLTE
 #define PNG_READ_EMPTY_PLTE_SUPPORTED  /* useful for MNG applications */
@@ -604,7 +604,9 @@
 #endif
 #ifndef PNG_NO_READ_UNKNOWN_CHUNKS
 #  define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
-#  define PNG_UNKNOWN_CHUNKS_SUPPORTED
+#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
+#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
+#  endif
 #  ifndef PNG_NO_HANDLE_AS_UNKNOWN
 #    define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
 #  endif
diff --git a/pngerror.c b/pngerror.c
index ca64d5b..45f3dcf 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pnggccrd.c b/pnggccrd.c
index 228f1f0..309b93b 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.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, Intel Corporation
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
diff --git a/pngget.c b/pngget.c
index 3b8b0f0..c7a6403 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngmem.c b/pngmem.c
index ce69191..ff12605 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngpread.c b/pngpread.c
index 1454f52..91afd98 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngread.c b/pngread.c
index 813df00..96b6cab 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
@@ -86,6 +86,18 @@
          "Incompatible libpng version in application and library");
    }
 
+   /* Libpng 1.0.6 was not binary compatible, due to insertion of the
+      info_ptr->free_me member.  Note to maintainer: this test can be
+      removed from version 2.0.0 and beyond because the previous test
+      would have already rejected it. */
+
+   if (user_png_ver[4] == '6' && user_png_ver[2] == '0' && 
+       user_png_ver[0] == '1' && user_png_ver[5] == '\0')
+   {
+      png_error(png_ptr,
+         "Application must be recompiled; version 1.0.6 was incompatible");
+   }
+
    /* initialize zbuf - compression buffer */
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
@@ -116,14 +128,44 @@
 /* Initialize PNG structure for reading, and allocate any memory needed.
    This interface is deprecated in favour of the png_create_read_struct(),
    and it will eventually disappear. */
+#undef png_read_init
 void
 png_read_init(png_structp png_ptr)
 {
+   /* We only come here via pre-1.0.7-compiled applications */
+   png_read_init_2(png_ptr, "1.0.0", 10000, 10000);
+}
+
+void
+png_read_init_2(png_structp png_ptr, png_const_charp user_png_ver,
+   png_size_t png_struct_size, png_size_t png_info_size)
+{
 #ifdef PNG_SETJMP_SUPPORTED
    jmp_buf tmp_jmp;  /* to save current jump buffer */
 #endif
 
-   png_debug(1, "in png_read_init\n");
+#ifndef PNG_LEGACY_SUPPORTED
+   int i=0;
+   do
+   {
+     if(user_png_ver[i] != png_libpng_ver[i])
+     {
+       png_ptr->error_fn=(png_error_ptr)NULL;
+       png_error(png_ptr,
+        "Application uses deprecated png_read_init() and must be recompiled.");
+     }
+   } while (png_libpng_ver[i++]);
+#endif
+
+   if(sizeof(png_struct) > png_struct_size ||
+      sizeof(png_info) > png_info_size)
+     {
+       png_ptr->error_fn=(png_error_ptr)NULL;
+       png_error(png_ptr,
+      "Application and library have different sized structs. Please recompile.");
+     }
+
+   png_debug(1, "in png_read_init_2\n");
 
 #ifdef PNG_SETJMP_SUPPORTED
    /* save jump buffer and error functions */
@@ -138,15 +180,6 @@
    png_memcpy(png_ptr->jmpbuf, tmp_jmp, sizeof (jmp_buf));
 #endif
 
-#ifndef PNG_LEGACY_SUPPORTED
-   if(!(png_ptr->mode & PNG_CREATED_READ_STRUCT))
-   {
-      png_ptr->error_fn=NULL;
-      png_error(png_ptr,
-         "Read struct not properly created; use a legacy-supporting libpng.");
-   }
-#endif
-
    /* initialize zbuf - compression buffer */
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
@@ -168,6 +201,11 @@
    png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
 
    png_set_read_fn(png_ptr, NULL, NULL);
+
+#ifdef PNG_LEGACY_SUPPORTED
+   if (user_png_ver)
+      return;
+#endif
 }
 
 /* Read the information before the actual image data.  This has been
@@ -652,7 +690,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.6i.
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.6j.
  */
 
 void
@@ -701,7 +739,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.6i.
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.6j.
  */
 void
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index d7990c7..4ff4d51 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngrtran.c b/pngrtran.c
index 311e9f1..9ed58aa 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.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngrutil.c b/pngrutil.c
index de732a0..50e6037 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngset.c b/pngset.c
index 397ab6f..9894aec 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngtest.c b/pngtest.c
index 93b373b..e4b23b9 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
@@ -1378,4 +1378,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_6i your_png_h_is_not_version_1_0_6i;
+typedef version_1_0_6j your_png_h_is_not_version_1_0_6j;
diff --git a/pngtrans.c b/pngtrans.c
index b540579..3b68b7d 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.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngvcrd.c b/pngvcrd.c
index 73c9c77..820d7fc 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998, Intel Corporation
  * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
diff --git a/pngwio.c b/pngwio.c
index 3a2f06c..6322624 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngwrite.c b/pngwrite.c
index e28caf3..a90c816 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
@@ -468,6 +468,19 @@
          "Incompatible libpng version in application and library");
    }
 
+   /* Libpng 1.0.6 was not binary compatible, due to insertion of the
+      info_ptr->free_me member.  Note to maintainer: this test can be
+      removed from version 2.0.0 and beyond because the previous test
+      would have already rejected it. */
+
+   if (user_png_ver[4] == '6' && user_png_ver[2] == '0' && 
+       user_png_ver[0] == '1' && user_png_ver[5] == '\0')
+   {
+      png_error(png_ptr,
+         "Application must be recompiled; version 1.0.6 was incompatible");
+   }
+
+
    /* initialize zbuf - compression buffer */
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
@@ -486,14 +499,43 @@
 }
 
 /* Initialize png_ptr structure, and allocate any memory needed */
+#undef png_write_init
 void
 png_write_init(png_structp png_ptr)
 {
+   /* We only come here via pre-1.0.7-compiled applications */
+   png_write_init_2(png_ptr, "1.0.0", 10000, 10000);
+}
+
+void
+png_write_init_2(png_structp png_ptr, png_const_charp user_png_ver,
+   png_size_t png_struct_size, png_size_t png_info_size)
+{
 #ifdef PNG_SETJMP_SUPPORTED
    jmp_buf tmp_jmp; /* to save current jump buffer */
 #endif
+#ifndef PNG_LEGACY_SUPPORTED
+   int i = 0;
+   do
+   {
+     if (user_png_ver[i] != png_libpng_ver[i])
+     {
+       png_ptr->error_fn=(png_error_ptr)NULL;
+       png_error(png_ptr,
+       "Application uses deprecated png_write_init() and must be recompiled.");
+     }
+   } while (png_libpng_ver[i++]);
+#endif
+   if (sizeof(png_struct) > png_struct_size ||
+      sizeof(png_info) > png_info_size)
+     {
+       png_ptr->error_fn=(png_error_ptr)NULL;
+       png_error(png_ptr,
+      "Application and library have different sized structs. Please recompile.");
+     }
 
-   png_debug(1, "in png_write_init\n");
+   png_debug(1, "in png_write_init_2\n");
+
 #ifdef PNG_SETJMP_SUPPORTED
    /* save jump buffer and error functions */
    png_memcpy(tmp_jmp, png_ptr->jmpbuf, sizeof (jmp_buf));
@@ -507,15 +549,6 @@
    png_memcpy(png_ptr->jmpbuf, tmp_jmp, sizeof (jmp_buf));
 #endif
 
-#ifndef PNG_LEGACY_SUPPORTED
-   if(!(png_ptr->mode & PNG_CREATED_WRITE_STRUCT))
-   {
-      png_ptr->error_fn=NULL;
-      png_error(png_ptr,
-        "Write struct not properly created; use a legacy-supporting libpng.");
-   }
-#endif
-
    /* initialize zbuf - compression buffer */
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
@@ -526,6 +559,11 @@
    png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT,
       1, NULL, NULL);
 #endif
+
+#ifdef PNG_LEGACY_SUPPORTED
+   if (user_png_ver)
+      return;
+#endif
 }
 
 /* Write a few rows of image data.  If the image is interlaced,
diff --git a/pngwtran.c b/pngwtran.c
index 80e80b6..6e4385b 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.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/pngwutil.c b/pngwutil.c
index b722933..c178d71 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.0.6i - May 1, 2000
+ * libpng 1.0.6j - May 4, 2000
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 0790cad..34250b1 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -1,14 +1,9 @@
 # makefile for libpng on BeOS x86 ELF with gcc
 # modified from makefile.linux by Sander Stoks
 # Copyright (C) 1996, 1997 Andreas Dilger
-# Copyright (C) 1999, 2000 Greg Roelofs
+# Copyright (C) 1999 Greg Roelofs
 # For conditions of distribution and use, see copyright notice in png.h
 
-# read libpng.txt or png.h to see why PNGMAJ is 10.  You should not
-# have to change it.
-PNGMAJ = 10
-PNGMIN = 6i
-PNGVER = $(PNGMAJ).$(PNGMIN)
 CC=gcc
 
 # Where the zlib library and include files are located
@@ -33,6 +28,11 @@
 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.6j
+PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # where make install puts libpng.a, libpng.so*, and png.h
 prefix=/usr/local
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index 02d5f20..429353b 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -11,10 +11,10 @@
 ZLIBLIB=../zlib
 ZLIBINC=../zlib
 
-# read libpng.txt or png.h to see why PNGMAJ is 10.  You should not
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
-PNGMAJ = 10
-PNGMIN = 6i
+PNGMAJ = 2
+PNGMIN = 1.0.6j
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=cc
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 7dc9b1f..e1468f8 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -31,10 +31,10 @@
 RANLIB=ranlib
 #RANLIB=echo
 
-# read libpng.txt or png.h to see why PNGMAJ is 10.  You should not
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
-PNGMAJ = 10
-PNGMIN = 6i
+PNGMAJ = 2
+PNGMIN = 1.0.6j
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index bd23d80..37d875f 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -1,6 +1,6 @@
 # makefile for libpng on Linux ELF with gcc
 # Copyright (C) 1996, 1997 Andreas Dilger
-# Copyright (C) 1998-2000, Greg Roelofs
+# Copyright (C) 1998, 1999 Greg Roelofs
 # For conditions of distribution and use, see copyright notice in png.h
 
 CC=gcc
@@ -31,10 +31,10 @@
 RANLIB=ranlib
 #RANLIB=echo
 
-# read libpng.txt or png.h to see why PNGMAJ is 10.  You should not
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
-PNGMAJ = 10
-PNGMIN = 6i
+PNGMAJ = 2
+PNGMIN = 1.0.6j
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index 98a95a7..0d69b2d 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -2,7 +2,7 @@
 # Contributed by Mike Hopkirk (hops@sco.com) modified from Makefile.lnx
 #   force ELF build dynamic linking, SONAME setting in lib and RPATH in app
 # Copyright (C) 1996, 1997 Andreas Dilger
-# Copyright (C) 1998, 2000 Greg Roelofs
+# Copyright (C) 1998 Greg Roelofs
 # For conditions of distribution and use, see copyright notice in png.h
 
 CC=cc
@@ -22,10 +22,10 @@
 #RANLIB=ranlib
 RANLIB=echo
 
-# read libpng.txt or png.h to see why PNGMAJ is 10.  You should not
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
-PNGMAJ = 10
-PNGMIN = 6i
+PNGMAJ = 2
+PNGMIN = 1.0.6j
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index d7f8c3a..90bafdc 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.6i
-LIBS=libpng.so.1.0.6i
+VER=1.0.6j
+LIBS=libpng.so.1.0.6j
 SHAREDLIB=libpng.so
 libdir=$(prefix)/lib32
 
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 43f236e..b35cd92 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -1,7 +1,7 @@
 # makefile for libpng on Solaris 2.x with gcc
 # Contributed by William L. Sebok, based on makefile.linux
 # Copyright (C) 1996, 1997 Andreas Dilger
-# Copyright (C) 1998, 2000 Greg Roelofs
+# Copyright (C) 1998 Greg Roelofs
 # For conditions of distribution and use, see copyright notice in png.h
 
 CC=gcc
@@ -28,10 +28,10 @@
 #RANLIB=ranlib
 RANLIB=echo
 
-# read libpng.txt or png.h to see why PNGMAJ is 10.  You should not
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
-PNGMAJ = 10
-PNGMIN = 6i
+PNGMAJ = 2
+PNGMIN = 1.0.6j
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index bfac791..8363ac4 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -3,7 +3,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.0.6i';
+  PNG_LIBPNG_VER_STRING = '1.0.6j';
   PNG_LIBPNG_VER        =  10007;
 
 type