diff --git a/LICENSE b/LICENSE
index 50498ad..03b50b1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,8 +10,8 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.0beta25, June 7, 2012, are
-Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
+libpng versions 1.2.6, August 15, 2004, through 1.6.0beta25, June 16, 2012, are
+Copyright (c) 2004, 2006-2012 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
 
@@ -108,4 +108,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-June 7, 2012
+June 16, 2012
diff --git a/README b/README
index 558e954..0287540 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.6.0beta25 - June 7, 2012 (shared library 16.0)
+README for libpng version 1.6.0beta25 - June 16, 2012 (shared library 16.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
diff --git a/autogen.sh b/autogen.sh
index 1774ba5..b6db4eb 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -213,7 +213,7 @@
       exec >&2
       echo "Your system has a partial set of autotools generated files."
       echo "autogen.sh is unable to proceed.  The full set of files is"
-      echo "contained in the distribution archive and you do not need to run"
-      echo "autogen.sh if you use it."
+      echo "contained in the libpng 'tar' distribution archive and you do"
+      echo "not need to run autogen.sh if you use it."
       exit 1;;
 esac
diff --git a/contrib/libtests/pngstest.c b/contrib/libtests/pngstest.c
index 6096975..386ffa1 100644
--- a/contrib/libtests/pngstest.c
+++ b/contrib/libtests/pngstest.c
@@ -39,7 +39,7 @@
 
 /* KNOWN ISSUES
  *
- * These defines switch on alternate algorithms for format convertions to match
+ * These defines switch on alternate algorithms for format conversions to match
  * the current libpng implementation; they are set to allow pngstest to pass
  * even though libpng is producing answers that are not as correct as they
  * should be.
@@ -124,7 +124,7 @@
 }
 
 /* sRGB support: use exact calculations rounded to the nearest int, see the
- * fesetround() call in main().  sRGB_to_d optimizes the 8 to 16-bit convertion.
+ * fesetround() call in main().  sRGB_to_d optimizes the 8 to 16-bit conversion.
  */
 static double sRGB_to_d[256];
 static double g22_to_d[256];
@@ -235,7 +235,7 @@
    if (value > 0 && value < 65535)
    {
       /* Round trip the value through an 8-bit representation but using
-       * non-matching to/from convertions.
+       * non-matching to/from conversions.
        */
       double vd = value / 65535.;
       double e = fabs(
@@ -1066,7 +1066,7 @@
  * 3) Convert between 8-bit and 16-bit components.  (Both directtions are
  *    relevant.)
  *
- * This gives the following base format convertion matrix:
+ * This gives the following base format conversion matrix:
  *
  *   OUT:    ----- 8-bit -----    ----- 16-bit -----
  *   IN     G    GA   RGB  RGBA  G    GA   RGB  RGBA
@@ -1160,7 +1160,7 @@
 }
 #endif
 
-/* 8-bit to 8-bit convertions */
+/* 8-bit to 8-bit conversions */
 /* bckg: composite on gray background */
 static void
 gpc_bckg(Pixel *out, const Pixel *in, const Background *back)
@@ -1255,7 +1255,7 @@
    out->a = 255;
 }
 
-/* 8-bit to 16-bit convertions */
+/* 8-bit to 16-bit conversions */
 /* lin: make sRGB components linear, alpha := 65535 */
 static void
 gpc_lin(Pixel *out, const Pixel *in, const Background *back)
@@ -1412,7 +1412,7 @@
    out->a = 65535;
 }
 
-/* 8-bit to 16-bit convertions for gAMA 45455 encoded values */
+/* 8-bit to 16-bit conversions for gAMA 45455 encoded values */
 /* Lin: make gAMA 45455 components linear, alpha := 65535 */
 static void
 gpc_Lin(Pixel *out, const Pixel *in, const Background *back)
@@ -1583,7 +1583,7 @@
 }
 #endif
 
-/* 16-bit to 8-bit convertions */
+/* 16-bit to 8-bit conversions */
 /* sRGB: convert linear components to sRGB, alpha := 255 */
 static void
 gpc_sRGB(Pixel *out, const Pixel *in, const Background *back)
@@ -1809,7 +1809,7 @@
    out->a = 255;
 }
 
-/* 16-bit to 16-bit convertions */
+/* 16-bit to 16-bit conversions */
 /* A:    set alpha to 65535 */
 static void
 gpc_A(Pixel *out, const Pixel *in, const Background *back)
@@ -1900,13 +1900,13 @@
 };
 
 /* The error arrays record the error in the same matrix; 64 entries, however
- * the different algorithms used in libpng for colormap and direct convertions
+ * the different algorithms used in libpng for colormap and direct conversions
  * mean that four separate matrices are used (for each combination of
  * colormapped and direct.)
  *
- * In some cases the convertion between sRGB formats goes via a linear
- * intermediate; an sRGB to linear convertion (as above) is followed by a simple
- * linear to sRGB step with no other convertions.  This is done by a separate
+ * In some cases the conversion between sRGB formats goes via a linear
+ * intermediate; an sRGB to linear conversion (as above) is followed by a simple
+ * linear to sRGB step with no other conversions.  This is done by a separate
  * error array from an arbitrary 'in' format to one of the four basic outputs
  * (since final output is always sRGB not colormapped).
  *
@@ -2120,7 +2120,7 @@
 }
 Transform;
 
-/* Return a 'transform' as above for the given format convertion. */
+/* Return a 'transform' as above for the given format conversion. */
 static void
 transform_from_formats(Transform *result, Image *in_image,
    const Image *out_image, png_const_colorp background, int via_linear)
@@ -2185,10 +2185,10 @@
 
    else
    {
-      /* The caller handles the colormap->pixel value convertion, so the
+      /* The caller handles the colormap->pixel value conversion, so the
        * transform function just gets a pixel value, however because libpng
        * currently contains a different implementation for mapping a colormap if
-       * both input and output are colormapped we need different convertion
+       * both input and output are colormapped we need different conversion
        * functions to deal with errors in the libpng implementation.
        */
       if (in_format & out_format & PNG_FORMAT_FLAG_COLORMAP)
@@ -2249,7 +2249,7 @@
                result->background_color.ir = background->red;
                result->background_color.ig = background->green;
                result->background_color.ib = background->blue;
-               /* TODO: sometimes libpng uses the power law convertion here, how
+               /* TODO: sometimes libpng uses the power law conversion here, how
                 * to handle this?
                 */
                result->background_color.dr = sRGB_to_d[background->red];
@@ -2262,7 +2262,7 @@
                result->background_color.ir =
                   result->background_color.ig =
                   result->background_color.ib = background->green;
-               /* TODO: sometimes libpng uses the power law convertion here, how
+               /* TODO: sometimes libpng uses the power law conversion here, how
                 * to handle this?
                 */
                result->background_color.dr =
@@ -2276,7 +2276,7 @@
             result->background_color.ir =
                result->background_color.ig =
                result->background_color.ib = BUFFER_INIT8;
-            /* TODO: sometimes libpng uses the power law convertion here, how
+            /* TODO: sometimes libpng uses the power law conversion here, how
              * to handle this?
              */
             result->background_color.dr =
diff --git a/contrib/libtests/tarith.c b/contrib/libtests/tarith.c
index 6afc1d8..318749b 100644
--- a/contrib/libtests/tarith.c
+++ b/contrib/libtests/tarith.c
@@ -195,7 +195,7 @@
 	  * code above is not optimized and may drift outside the .5 in
 	  * DBL_DIG allowed.  In any case a small number of errors may
 	  * occur (very small ones - 1 or 2%) because of rounding in the
-	  * calculations, either in the convertion API or in atof.
+	  * calculations, either in the conversion API or in atof.
 	  */
 	 if (change >= allow && (isfinite(out) ||
 	     fabs(test/DBL_MAX) <= 1-allow))
@@ -942,7 +942,7 @@
 /* Various validation routines are included herein, they require some
  * definition for png_warning and png_error, seetings of VALIDATION:
  *
- * 1: validates the ASCII to floating point convertions
+ * 1: validates the ASCII to floating point conversions
  * 2: validates png_muldiv
  * 3: accuracy test of fixed point gamma tables
  */
diff --git a/libpngpf.3 b/libpngpf.3
index 30b79be..275f6c7 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "June 7, 2012"
+.TH LIBPNGPF 3 "June 16, 2012"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.0beta25
 (private functions)
diff --git a/png.5 b/png.5
index 0e7ed08..ad32cb7 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "June 7, 2012"
+.TH PNG 5 "June 16, 2012"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index deb92fc..5bd5334 100644
--- a/png.c
+++ b/png.c
@@ -748,13 +748,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.6.0beta25 - June 12, 2012" PNG_STRING_NEWLINE \
+     "libpng version 1.6.0beta25 - June 16, 2012" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2012 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.6.0beta25 - June 12, 2012\
+      return "libpng version 1.6.0beta25 - June 16, 2012\
       Copyright (c) 1998-2012 Glenn Randers-Pehrson\
       Copyright (c) 1996-1997 Andreas Dilger\
       Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
diff --git a/pngconf.h b/pngconf.h
index e48bf26..75afce7 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.6.0beta25 - June 7, 2012
+ * libpng version 1.6.0beta25 - June 16, 2012
  *
  * Copyright (c) 1998-2012 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index 26bd1d4..1b62193 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.6.0beta25 - June 7, 2012
+libpng version 1.6.0beta25 - June 16, 2012
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index 29910e3..425c404 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
 <!--
  * zlib.props - location of zlib source
  *
- * libpng version 1.6.0beta25 - June 7, 2012
+ * libpng version 1.6.0beta25 - June 16, 2012
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index b67e724..04b6120 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.6.0beta25 - June 7, 2012
+Makefiles for  libpng version 1.6.0beta25 - June 16, 2012
 
 pnglibconf.h.prebuilt       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 1c84319..1ecc44c 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -3,7 +3,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng 1.6.0beta25 - June 7, 2012 */
+/* Libpng 1.6.0beta25 - June 16, 2012 */
 
 /* Copyright (c) 1998-2012 Glenn Randers-Pehrson */
 
