diff --git a/ANNOUNCE b/ANNOUNCE
index 42ec160..1656a1e 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.6.11beta06 - May 10, 2014
+Libpng 1.6.11beta06 - May 19, 2014
 
 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.
@@ -62,7 +62,7 @@
     "Not recognizing known sRGB profile that has been edited" warning for
     ICC V2 profiles that lack the MD5 signature in the profile header.
 
-Version 1.6.11beta06 [May 10, 2014]
+Version 1.6.11beta06 [May 19, 2014]
   Added PNG_SKIP_sRGB_CHECK_PROFILE choice for png_set_option().
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
diff --git a/CHANGES b/CHANGES
index 4d1a808..cd9c331 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4913,7 +4913,7 @@
     "Not recognizing known sRGB profile that has been edited" warning for
     ICC V2 profiles that lack the MD5 signature in the profile header.
 
-Version 1.6.11beta06 [May 10, 2014]
+Version 1.6.11beta06 [May 19, 2014]
   Added PNG_SKIP_sRGB_CHECK_PROFILE choice for png_set_option().
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
diff --git a/LICENSE b/LICENSE
index ab2e0a7..1754674 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.11beta06, April 26, 2014, are
+libpng versions 1.2.6, August 15, 2004, through 1.6.11beta06, May 19, 2014, are
 Copyright (c) 2004, 2006-2014 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
-April 26, 2014
+May 19, 2014
diff --git a/README b/README
index e86514b..6ce1584 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.6.11beta06 - April 26, 2014 (shared library 16.0)
+README for libpng version 1.6.11beta06 - May 19, 2014 (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/libpng-manual.txt b/libpng-manual.txt
index 5d6dc8c..f994887 100644
--- a/libpng-manual.txt
+++ b/libpng-manual.txt
@@ -1,6 +1,6 @@
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.11beta06 - May 10, 2014
+ libpng version 1.6.11beta06 - May 19, 2014
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.11beta06 - May 10, 2014
+ libpng versions 0.97, January 1998, through 1.6.11beta06 - May 19, 2014
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
 
@@ -5042,8 +5042,10 @@
 libpng-1.6.11, recognizing and checking sRGB profiles can be avoided by
 means of
 
-    png_set_option(ping, PNG_SKIP_sRGB_CHECK_PROFILE,
-        PNG_OPTION_ON);
+    #ifdef PNG_SKIP_sRGB_CHECK_PROFILE
+       png_set_option(ping, PNG_SKIP_sRGB_CHECK_PROFILE,
+           PNG_OPTION_ON);
+    #endif
 
 It's not a good idea to do this if you are using the "simplified API",
 which needs to be able to recognize an sRGB profile conveyed via the iCCP
@@ -5273,7 +5275,7 @@
 
 XVI. Y2K Compliance in libpng
 
-May 10, 2014
+May 19, 2014
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
diff --git a/libpng.3 b/libpng.3
index bd0d62e..b0efd87 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "May 10, 2014"
+.TH LIBPNG 3 "May 19, 2014"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.11beta06
 .SH SYNOPSIS
@@ -504,7 +504,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.11beta06 - May 10, 2014
+ libpng version 1.6.11beta06 - May 19, 2014
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
@@ -515,7 +515,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.11beta06 - May 10, 2014
+ libpng versions 0.97, January 1998, through 1.6.11beta06 - May 19, 2014
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2014 Glenn Randers-Pehrson
 
@@ -5546,8 +5546,10 @@
 libpng-1.6.11, recognizing and checking sRGB profiles can be avoided by
 means of
 
-    png_set_option(ping, PNG_SKIP_sRGB_CHECK_PROFILE,
-        PNG_OPTION_ON);
+    #ifdef PNG_SKIP_sRGB_CHECK_PROFILE
+       png_set_option(ping, PNG_SKIP_sRGB_CHECK_PROFILE,
+           PNG_OPTION_ON);
+    #endif
 
 It's not a good idea to do this if you are using the "simplified API",
 which needs to be able to recognize an sRGB profile conveyed via the iCCP
@@ -5777,7 +5779,7 @@
 
 .SH XVI. Y2K Compliance in libpng
 
-May 10, 2014
+May 19, 2014
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
@@ -6074,7 +6076,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.6.11beta06 - May 10, 2014:
+Libpng version 1.6.11beta06 - May 19, 2014:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -6097,8 +6099,8 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.11beta06, May 10, 2014, are
-Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
+libpng versions 1.2.6, August 15, 2004, through 1.6.11beta06, May 19, 2014, are
+Copyright (c) 2004,2006-2014 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
 
@@ -6196,7 +6198,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-May 10, 2014
+May 19, 2014
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index 4f39b5c..d2de997 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "April 26, 2014"
+.TH LIBPNGPF 3 "May 19, 2014"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.11beta06
 (private functions)
diff --git a/png.5 b/png.5
index 0eac288..2a0c876 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "April 26, 2014"
+.TH PNG 5 "May 19, 2014"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index cd10962..f47fffe 100644
--- a/png.c
+++ b/png.c
@@ -773,13 +773,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.6.11beta06 - May 7, 2014" PNG_STRING_NEWLINE \
+     "libpng version 1.6.11beta06 - May 19, 2014" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2014 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.11beta06 - May 7, 2014\
+      return "libpng version 1.6.11beta06 - May 19, 2014\
       Copyright (c) 1998-2014 Glenn Randers-Pehrson\
       Copyright (c) 1996-1997 Andreas Dilger\
       Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
diff --git a/png.h b/png.h
index fbdaa9c..c9c2e8b 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.6.11beta06 - May 7, 2014
+ * libpng version 1.6.11beta06 - May 19, 2014
  * Copyright (c) 1998-2014 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.)
@@ -11,7 +11,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.6.11beta06 - May 7, 2014: Glenn
+ *   libpng versions 0.97, January 1998, through 1.6.11beta06 - May 19, 2014: Glenn
  *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -227,7 +227,7 @@
  *
  * This code is released under the libpng license.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.6.11beta06, May 7, 2014, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.6.11beta06, May 19, 2014, are
  * Copyright (c) 2004, 2006-2013 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:
@@ -339,7 +339,7 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    May 7, 2014
+ *    May 19, 2014
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
@@ -409,7 +409,7 @@
 /* Version information for png.h - this should match the version in png.c */
 #define PNG_LIBPNG_VER_STRING "1.6.11beta06"
 #define PNG_HEADER_VERSION_STRING \
-     " libpng version 1.6.11beta06 - May 7, 2014\n"
+     " libpng version 1.6.11beta06 - May 19, 2014\n"
 
 #define PNG_LIBPNG_VER_SONUM   16
 #define PNG_LIBPNG_VER_DLLNUM  16
diff --git a/pngconf.h b/pngconf.h
index 093811e..f121229 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.6.11beta06 - April 26, 2014
+ * libpng version 1.6.11beta06 - May 19, 2014
  *
  * Copyright (c) 1998-2013 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 1bba18f..5002abf 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.6.11beta06 - April 26, 2014
+libpng version 1.6.11beta06 - May 19, 2014
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index 0ffcad1..3c1aa2c 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.11beta06 - April 26, 2014
+ * libpng version 1.6.11beta06 - May 19, 2014
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index aa70caf..315b869 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.6.11beta06 - April 26, 2014
+Makefiles for  libpng version 1.6.11beta06 - May 19, 2014
 
 pnglibconf.h.prebuilt       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
diff --git a/scripts/options.awk b/scripts/options.awk
index 9aff15d..850d90b 100755
--- a/scripts/options.awk
+++ b/scripts/options.awk
@@ -269,7 +269,7 @@
 
          if (val != 1) { # error reading it
             if (val == 0)
-               print "option", opt ": ERROR: missing contination line"
+               print "option", opt ": ERROR: missing continuation line"
             else
                print "option", opt ": ERROR: error reading continuation line"
 
@@ -362,7 +362,7 @@
 
          if (val != 1) { # error reading it
             if (val == 0)
-               print "chunk", opt ": ERROR: missing contination line"
+               print "chunk", opt ": ERROR: missing continuation line"
             else
                print "chunk", opt ": ERROR: error reading continuation line"
 
@@ -493,7 +493,7 @@
    next
 }
 
-# Check for unreognized lines, because of the preprocessing chunk
+# Check for unrecognized lines, because of the preprocessing chunk
 # format errors will be detected on the first pass independent of
 # any other format errors.
 {
@@ -585,7 +585,7 @@
    # If an option[opt] is 'on' then turn on all requires[opt]
    # If an option[opt] is 'off' then turn off all enabledby[opt]
    #
-   # Error out if we have to turn 'on' an 'off' option or vice versa.
+   # Error out if we have to turn 'on' to an 'off' option or vice versa.
    npending = 0
    for (opt in option) if (opt != "") {
       if (option[opt] == "on" || option[opt] == "off") {
@@ -677,7 +677,7 @@
          for (j=1; j<=nreqs; ++j) {
             print "#ifndef PNG_" r[j] "_SUPPORTED" >out
             print "#   undef PNG_on /*!" r[j] "*/" >out
-            # this error appears in the final output if something
+            # This error appears in the final output if something
             # was switched 'on' but the processing above to force
             # the requires did not work
             if (option[i] == "on") {
diff --git a/scripts/pnglibconf.dfa b/scripts/pnglibconf.dfa
index 96bb4cd..294a4e2 100644
--- a/scripts/pnglibconf.dfa
+++ b/scripts/pnglibconf.dfa
@@ -580,19 +580,19 @@
 #
 # -1: Don't do any sRGB profile checking.
 #
-# 0: Just validate the profile MD5 signature if present, otherwise use
-#    the checks in option 1.
+#  0: Just validate the profile MD5 signature if present, otherwise use
+#     the checks in option 1.
 #
-# 1: Additionally check the length, intent and adler32 checksum of the
-#    actual data.   If enabled this will reject known profiles that have
-#    had the rendering intent in the header changed as well as other edits
-#    done without updating the checksum.  See the discussion below.
+#  1: Additionally check the length, intent and adler32 checksum of the
+#     actual data.   If enabled this will reject known profiles that have
+#     had the rendering intent in the header changed as well as other edits
+#     done without updating the checksum.  See the discussion below.
 #
-# 2: Additionally checksum all the data using the ethernet CRC32 algorithm.
-#    This makes it more difficult to fake profiles and makes it less likely
-#    to get a false positive on profiles with no signature, but is probably
-#    just a waste of time since all currently approved ICC sRGB profiles have
-#    a secure MD5 signature.
+#  2: Additionally checksum all the data using the ethernet CRC32 algorithm.
+#     This makes it more difficult to fake profiles and makes it less likely
+#     to get a false positive on profiles with no signature, but is probably
+#     just a waste of time since all currently approved ICC sRGB profiles have
+#     a secure MD5 signature.
 #
 # The rendering intent.  An ICC profile stores an intended rendering intent,
 # but does not include the value in the signature.  The intent is documented
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 76958ef..9eae56f 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -2,7 +2,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng version 1.6.11beta06 - April 26, 2014 */
+/* Libpng version 1.6.11beta06 - May 19, 2014 */
 
 /* Copyright (c) 1998-2013 Glenn Randers-Pehrson */
 
