diff --git a/ANNOUNCE b/ANNOUNCE
index 9d23f06..bf6ac56 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.5.13beta02 - August 9, 2012
+Libpng 1.5.13beta02 - August 10, 2012
 
 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.
@@ -32,7 +32,7 @@
   Revised PNG_FP_EXPORT and PNG_FIXED_EXPORT macros to avoid generating
     lone semicolons (patch ported from libpng-1.6.0beta11).
 
-Version 1.5.13beta02 [August 9, 2012]
+Version 1.5.13beta02 [August 10, 2012]
   Corrected handling of the image array and the row_pointers array in example.c
   When png_set_filler is used to strip a filler channel during write, the
     code prior to 1.5 would ignore the case where the output required an
@@ -41,6 +41,7 @@
     in a bad (potential memory overwrite) failure later.  This reverts
     the behavior to the pre-1.5 state but issues a warning. libpng-1.6 is
     expected to issue an error on the erroneous png_set_filler call.
+  Use png_memset() consistently (pngmem.c contained some bare "memset" calls).
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index 5838ede..ff88778 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3902,7 +3902,7 @@
   Revised PNG_FP_EXPORT and PNG_FIXED_EXPORT macros to avoid generating
     lone semicolons (patch ported from libpng-1.6.0beta11).
 
-Version 1.5.13beta02 [August 9, 2012]
+Version 1.5.13beta02 [August 10, 2012]
   Corrected handling of the image array and the row_pointers array in example.c
   When png_set_filler is used to strip a filler channel during write, the
     code prior to 1.5 would ignore the case where the output required an
@@ -3911,6 +3911,7 @@
     in a bad (potential memory overwrite) failure later.  This reverts
     the behavior to the pre-1.5 state but issues a warning. libpng-1.6 is
     expected to issue an error on the erroneous png_set_filler call.
+  Use png_memset() consistently (pngmem.c contained some bare "memset" calls).
 
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
diff --git a/pngmem.c b/pngmem.c
index bf5ff03..bf32aff 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,8 +1,8 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * Last changed in libpng 1.5.7 [December 15, 2011]
- * Copyright (c) 1998-2011 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.13 [(PENDING RELEASE)]
+ * Copyright (c) 1998-2012 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.)
  *
@@ -56,7 +56,7 @@
    if (malloc_fn != NULL)
    {
       png_struct dummy_struct;
-      memset(&dummy_struct, 0, sizeof dummy_struct);
+      png_memset(&dummy_struct, 0, sizeof dummy_struct);
       dummy_struct.mem_ptr=mem_ptr;
       struct_ptr = (*(malloc_fn))(&dummy_struct, (png_alloc_size_t)size);
    }
@@ -90,7 +90,7 @@
       if (free_fn != NULL)
       {
          png_struct dummy_struct;
-         memset(&dummy_struct, 0, sizeof dummy_struct);
+         png_memset(&dummy_struct, 0, sizeof dummy_struct);
          dummy_struct.mem_ptr=mem_ptr;
          (*(free_fn))(&dummy_struct, struct_ptr);
          return;
