diff --git a/ANNOUNCE b/ANNOUNCE
index 6f029b8..06cfc86 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.5.5beta07 - September 1, 2011
+Libpng 1.5.5beta07 - September 8, 2011
 
 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.
@@ -71,17 +71,21 @@
     and true grey ones were not gamma corrected (the original value of the
     red component was used instead).  APIs to get and set cHRM using color
     space end points have been added and the rgb_to_gray code that defaults
-    based on cHRM (introduced in 1.5.4) has been corrected.   A considerable
-    number of tests has been added to pngvalid for the rgb_to_gray transform.
-    Arithmetic errors in rgb_to_gray whereby the calculated gray value was
+    based on cHRM, and the divide-by-zero bug in png_handle_cHRM (introduced
+    in 1.5.4) have been corrected.
+  A considerable number of tests has been added to pngvalid for the
+    rgb_to_gray transform.
+  Arithmetic errors in rgb_to_gray whereby the calculated gray value was
     truncated to the bit depth rather than rounded have been fixed except in
     the 8-bit non-gamma-corrected case (where consistency seems more important
     than correctness.)  The code still has considerable inaccuracies in the
     8-bit case because 8-bit linear arithmetic is used.
 
-Version 1.5.5beta07 [September 1, 2011]
-    Added "$(ARCH)" option to makefile.darwin
-    Added SunOS support to configure.ac and Makefile.am
+Version 1.5.5beta07 [September 8, 2011]
+  Added "$(ARCH)" option to makefile.darwin
+  Added SunOS support to configure.ac and Makefile.am
+  Changed png_chunk_benign_error() to png_warning() in png.c, in
+    png_XYZ_from_xy_checked
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index 6d27fb4..be2f7f6 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3377,7 +3377,8 @@
   Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt
   The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative
     parameters are supplied by the caller), while in the absence of cHRM
-    sRGB/Rec 709 values are still used.
+    sRGB/Rec 709 values are still used.  This introduced a divide-by-zero
+    bug in png_handle_cHRM().
   The bKGD chunk no longer overwrites the background value set by
     png_set_background(), allowing the latter to be used before the file
     header is read. It never performed any useful function to override
@@ -3554,17 +3555,21 @@
     and true grey ones were not gamma corrected (the original value of the
     red component was used instead).  APIs to get and set cHRM using color
     space end points have been added and the rgb_to_gray code that defaults
-    based on cHRM (introduced in 1.5.4) has been corrected.   A considerable
-    number of tests has been added to pngvalid for the rgb_to_gray transform.
-    Arithmetic errors in rgb_to_gray whereby the calculated gray value was
+    based on cHRM, and the divide-by-zero bug in png_handle_cHRM (introduced
+    in 1.5.4) have been corrected.
+  A considerable number of tests has been added to pngvalid for the
+    rgb_to_gray transform.
+  Arithmetic errors in rgb_to_gray whereby the calculated gray value was
     truncated to the bit depth rather than rounded have been fixed except in
     the 8-bit non-gamma-corrected case (where consistency seems more important
     than correctness.)  The code still has considerable inaccuracies in the
     8-bit case because 8-bit linear arithmetic is used.
 
-Version 1.5.5beta07 [September 1, 2011]
-    Added "$(ARCH)" option to makefile.darwin
-    Added SunOS support to configure.ac and Makefile.am
+Version 1.5.5beta07 [September 8, 2011]
+  Added "$(ARCH)" option to makefile.darwin
+  Added SunOS support to configure.ac and Makefile.am
+  Changed png_chunk_benign_error() to png_warning() in png.c, in
+    png_XYZ_from_xy_checked
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/png.c b/png.c
index 6c08c5c..4e627d6 100644
--- a/png.c
+++ b/png.c
@@ -617,13 +617,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.5.5beta07 - August 26, 2011" PNG_STRING_NEWLINE \
+     "libpng version 1.5.5beta07 - September 8, 2011" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2011 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
      "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
      "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
      PNG_STRING_NEWLINE;
 #  else
-      return "libpng version 1.5.5beta07 - August 26, 2011\
+      return "libpng version 1.5.5beta07 - September 8, 2011\
       Copyright (c) 1998-2011 Glenn Randers-Pehrson\
       Copyright (c) 1996-1997 Andreas Dilger\
       Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
@@ -1092,7 +1092,7 @@
           * overflow while trying to get XYZ values out of it.  This is
           * entirely benign - the cHRM chunk is pretty extreme.
           */
-         png_chunk_benign_error(png_ptr,
+         png_warning(png_ptr,
             "extreme cHRM chunk cannot be converted to tristimulus values");
          break;
 
