[master] Revised iTXt support and documentation
diff --git a/ANNOUNCE b/ANNOUNCE
index 8bbc437..144e831 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -100,6 +100,10 @@
     been building previous versions with PNG_iTXt_SUPPORTED as well.
 
 version 1.2.41beta11 [November 1, 2009]
+  Revised iTXt support. To ensure binary compatibility with
+    previous versions, the "lang" and "lang_key" members will be assumed
+    to be omitted from previous versions whenever there is a library
+    mismatch.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 
diff --git a/CHANGES b/CHANGES
index b5a8097..6704fe5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2530,6 +2530,10 @@
     been building previous versions with PNG_iTXt_SUPPORTED as well.
 
 version 1.2.41beta11 [November 1, 2009]
+  Revised iTXt support. To ensure binary compatibility with
+    previous versions, the "lang" and "lang_key" members will be assumed
+    to be omitted from previous versions whenever there is a library
+    mismatch.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/libpng-1.2.41beta11.txt b/libpng-1.2.41beta11.txt
index 793699a..17b7af2 100644
--- a/libpng-1.2.41beta11.txt
+++ b/libpng-1.2.41beta11.txt
@@ -2951,11 +2951,7 @@
 png_malloc_default(), and png_free_default() were added.
 
 Support for the iTXt chunk has been enabled by default as of
-version 1.2.41.  If you have been defining PNG_iTXt_SUPPORTED
-already, please continue to do so, as a signal to libpng that your
-previous versions also supported iTXt. If you have not been defining
-PNG_iTXt_SUPPORTED, please don't start now; it will be enabled for
-you by default.
+version 1.2.41.
 
 Support for certain MNG features was enabled.
 
diff --git a/libpng.3 b/libpng.3
index 8accd5a..2ea3bed 100644
--- a/libpng.3
+++ b/libpng.3
@@ -3772,11 +3772,7 @@
 png_malloc_default(), and png_free_default() were added.
 
 Support for the iTXt chunk has been enabled by default as of
-version 1.2.41.  If you have been defining PNG_iTXt_SUPPORTED
-already, please continue to do so, as a signal to libpng that your
-previous versions also supported iTXt. If you have not been defining
-PNG_iTXt_SUPPORTED, please don't start now; it will be enabled for
-you by default.
+version 1.2.41.
 
 Support for certain MNG features was enabled.
 
diff --git a/pngset.c b/pngset.c
index b083b91..c3725d1 100644
--- a/pngset.c
+++ b/pngset.c
@@ -662,18 +662,20 @@
    if (png_ptr == NULL || info_ptr == NULL || num_text == 0)
       return(0);
 
-#ifdef PNG_iTXt_NOT_PREVIOUSLY_SUPPORTED
    /* If an earlier version of the library was used to build the
     * application, it might be using a png_textp structure that
-    * does not contain the lang or lang_key elements. If you build
+    * does not contain the lang or lang_key elements. Even if you build
     * this library with PNG_iTXt_SUPPORTED explicitly defined,
-    * then we assume that your older library was also built with
-    * PNG_iTXt_SUPPORTED defined and the complete png_textp structure
-    * has existed all along and it's safe to access them.  See pngconf.h.
+    * and your older library was also built with PNG_iTXt_SUPPORTED
+    * defined, the complete png_textp structure probably has not existed
+    * all along and it's not safe to access them, due to a bug in
+    * pngconf.h from version 1.2.9 to 1.2.40.
+    *
+    * To do: accept mismatched libraries when both are version 1.2.41
+    * or later.
     */
    if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
       caller_no_itxt = 1;
-#endif
 
    /* Make sure we have enough space in the "text" array in info_struct
     * to hold all of the incoming text_ptr objects.