diff --git a/ANNOUNCE b/ANNOUNCE
index 7a90dc0..f1724c0 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,52 +1,77 @@
-Libpng 1.6.36.git
-
-This is a development version, not intended to be a public release.
-It will be replaced by a public release, or by another development
-version, at a later time.
-
-Libpng 1.6.35 - July 15, 2018
+libpng 1.6.36 - December 1, 2018
+================================
 
 This is a public release of libpng, intended for use in production code.
 
-Files available for download:
+
+Files available for download
+----------------------------
 
 Source files with LF line endings (for Unix/Linux):
 
-   libpng-1.6.35.tar.xz (LZMA-compressed, recommended)
-   libpng-1.6.35.tar.gz
+ * libpng-1.6.36.tar.xz (LZMA-compressed, recommended)
+ * libpng-1.6.36.tar.gz
 
 Source files with CRLF line endings (for Windows):
 
-   lp1635.7z  (LZMA-compressed, recommended)
-   lp1635.zip
+ * lp1636.7z (LZMA-compressed, recommended)
+ * lp1636.zip
 
 Other information:
 
-   libpng-1.6.35-README.txt
-   libpng-1.6.35-LICENSE.txt
+ * README.md
+ * LICENSE.md
+ * AUTHORS.md
+ * TRADEMARK.md
 
-Changes since the previous public release (1.6.34):
 
-  Restored 21 of the contrib/pngsuite/i*.png, which do not cause test
-    failures. Placed the remainder in contrib/pngsuite/interlaced/i*.png.
-  Added calls to png_set_*() transforms commonly used by browsers to
-    the fuzzer.
-  Removed some unnecessary brackets in pngrtran.c
-  Fixed miscellaneous typos (Patch by github user "luzpaz").
-  Change "ASM C" to "C ASM" in CMakeLists.txt
-  Fixed incorrect handling of bKGD chunk in sub-8-bit files (Cosmin)
-  Added hardware optimization directories to zip and 7z distributions.
-  Fixed incorrect bitmask for options.
-  Fixed many spelling typos.
-  Make png_get_iCCP consistent with man page (allow compression-type argument
-    to be NULL, bug report by Lenard Szolnoki).
-  Replaced the remaining uses of png_size_t with size_t (Cosmin)
-  Fixed the calculation of row_factor in png_check_chunk_length
-    (reported by Thuan Pham in SourceForge issue #278)
-  Added missing parentheses to a macro definition
-    (suggested by "irwir" in GitHub issue #216)
+IMPORTANT licensing update: libpng license v2
+---------------------------------------------
 
-Send comments/corrections/commendations to png-mng-implement at lists.sf.net
-(subscription required; visit
+The new libpng license comprises the terms and conditions from the zlib
+license, and the disclaimer from the Boost license.
+
+The legacy libpng license, used until libpng-1.6.35, is appended to the
+new license, following the precedent established in the Python Software
+Foundation License version 2.
+
+From now on, the list of contributing authors shall be maintained in a
+separate AUTHORS file.  The lists of previous contributing authors,
+mentioned in the legacy libpng license and considered to be an integral
+part of that license, are kept intact, with no further updates.
+
+
+Changes since the previous public release (version 1.6.35)
+----------------------------------------------------------
+
+ * Optimized png_do_expand_palette for ARM processors.
+   Improved performance by around 10-22% on a recent ARM Chromebook.
+   (Contributed by Richard Townsend, ARM Holdings)
+ * Fixed manipulation of machine-specific optimization options.
+   (Contributed by Vicki Pfau)
+ * Used memcpy instead of manual pointer arithmetic on Intel SSE2.
+   (Contributed by Samuel Williams)
+ * Fixed build errors with MSVC on ARM64.
+   (Contributed by Zhijie Liang)
+ * Fixed detection of libm in CMakeLists.
+   (Contributed by Cameron Cawley)
+ * Fixed incorrect creation of pkg-config file in CMakeLists.
+   (Contributed by Kyle Bentley)
+ * Fixed the CMake build on Windows MSYS by avoiding symlinks.
+ * Fixed a build warning on OpenBSD.
+   (Contributed by Theo Buehler)
+ * Fixed various typos in comments.
+   (Contributed by "luz.paz")
+ * Raised the minimum required CMake version from 3.0.2 to 3.1.
+ * Removed yet more of the vestigial support for pre-ANSI C compilers.
+ * Removed ancient makefiles for ancient systems that have been broken
+   across all previous libpng-1.6.x versions.
+ * Removed the Y2K compliance statement and the export control
+   information.
+ * Applied various code style and documentation fixes.
+
+
+Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
+Subscription is required; visit
 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
-to subscribe).
+to subscribe.
diff --git a/CHANGES b/CHANGES
index 6a2531e..bdd4480 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6063,8 +6063,32 @@
   Added missing parentheses to a macro definition
     (suggested by "irwir" in GitHub issue #216)
 
-Version 1.6.36
-  [TODO]
+Version 1.6.36 [December 1, 2018]
+  Optimized png_do_expand_palette for ARM processors.
+  Improved performance by around 10-22% on a recent ARM Chromebook.
+  (Contributed by Richard Townsend, ARM Holdings)
+  Fixed manipulation of machine-specific optimization options.
+  (Contributed by Vicki Pfau)
+  Used memcpy instead of manual pointer arithmetic on Intel SSE2.
+  (Contributed by Samuel Williams)
+  Fixed build errors with MSVC on ARM64.
+  (Contributed by Zhijie Liang)
+  Fixed detection of libm in CMakeLists.
+  (Contributed by Cameron Cawley)
+  Fixed incorrect creation of pkg-config file in CMakeLists.
+  (Contributed by Kyle Bentley)
+  Fixed the CMake build on Windows MSYS by avoiding symlinks.
+  Fixed a build warning on OpenBSD.
+  (Contributed by Theo Buehler)
+  Fixed various typos in comments.
+  (Contributed by "luz.paz")
+  Raised the minimum required CMake version from 3.0.2 to 3.1.
+  Removed yet more of the vestigial support for pre-ANSI C compilers.
+  Removed ancient makefiles for ancient systems that have been broken
+  across all previous libpng-1.6.x versions.
+  Removed the Y2K compliance statement and the export control
+  information.
+  Applied various code style and documentation fixes.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 91cc942..73044c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -838,7 +838,7 @@
 # SET UP LINKS
 if(PNG_SHARED)
   set_target_properties(png PROPERTIES
-#   VERSION 16.${PNGLIB_RELEASE}.1.6.36.git
+#   VERSION 16.${PNGLIB_RELEASE}.1.6.36
     VERSION 16.${PNGLIB_RELEASE}.0
     SOVERSION 16
     CLEAN_DIRECT_OUTPUT 1)
diff --git a/LICENSE b/LICENSE
index 82bd66d..62ab8e4 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,8 +1,3 @@
-This copy of the libpng notices is provided for your convenience.
-In case of any discrepancy between this copy and the notices in the
-file png.h that is included in the libpng distribution, the latter
-shall prevail.
-
 COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
 =========================================
 
diff --git a/Makefile.am b/Makefile.am
index b2d2b6a..4f621aa 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -148,7 +148,7 @@
 # from those directories being included.  This only works if the configure is
 # not done in the source directory!
 EXTRA_DIST= \
-	ANNOUNCE CHANGES INSTALL LICENSE README TODO \
+	ANNOUNCE AUTHORS CHANGES INSTALL LICENSE README TODO TRADEMARK \
 	pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
 	${srcdir}/contrib ${srcdir}/projects ${srcdir}/scripts \
 	$(TESTS) $(XFAIL_TESTS) tests/pngstest \
diff --git a/Makefile.in b/Makefile.in
index 026c4b4..81ac1c8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -534,7 +534,7 @@
 	$(TEST_LOG_FLAGS)
 am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
 	$(srcdir)/config.h.in $(srcdir)/libpng-config.in \
-	$(srcdir)/libpng.pc.in INSTALL README TODO compile \
+	$(srcdir)/libpng.pc.in AUTHORS INSTALL README TODO compile \
 	config.guess config.sub depcomp install-sh ltmain.sh missing \
 	test-driver
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -784,7 +784,7 @@
 # from those directories being included.  This only works if the configure is
 # not done in the source directory!
 EXTRA_DIST = \
-	ANNOUNCE CHANGES INSTALL LICENSE README TODO \
+	ANNOUNCE AUTHORS CHANGES INSTALL LICENSE README TODO TRADEMARK \
 	pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
 	${srcdir}/contrib ${srcdir}/projects ${srcdir}/scripts \
 	$(TESTS) $(XFAIL_TESTS) tests/pngstest \
diff --git a/README b/README
index e2d418e..e41e0f5 100644
--- a/README
+++ b/README
@@ -1,4 +1,5 @@
-README for libpng version 1.6.36.git.
+README for libpng version 1.6.36 - December 1, 2018
+===================================================
 
 See the note about version numbers near the top of png.h.
 See INSTALL for instructions on how to install libpng.
@@ -89,9 +90,9 @@
 This code is currently being archived at libpng.sourceforge.io in the
 [DOWNLOAD] area, and at http://libpng.download/src .
 
-This release was created and will be supported by myself (of course
-based in a large way on Glenn's, Guy's and Andreas' earlier work), and
-the PNG development group.
+This release, based in a large way on Glenn's, Guy's and Andreas'
+earlier work, was created and will be supported by myself and the PNG
+development group.
 
 Send comments/corrections/commendations to png-mng-implement at
 lists.sourceforge.net (subscription required; visit
@@ -106,11 +107,13 @@
 Files in this distribution:
 
       ANNOUNCE      =>  Announcement of this version, with recent changes
+      AUTHORS       =>  List of contributing authors
       CHANGES       =>  Description of changes between libpng versions
       KNOWNBUG      =>  List of known bugs and deficiencies
       LICENSE       =>  License to use and redistribute libpng
       README        =>  This file
       TODO          =>  Things not implemented in the current library
+      TRADEMARK     =>  Trademark information
       example.c     =>  Example code for using libpng functions
       libpng.3      =>  manual page for libpng (includes libpng-manual.txt)
       libpng-manual.txt  =>  Description of libpng and its functions
@@ -171,18 +174,10 @@
       scripts       =>  Directory containing scripts for building libpng:
                             (see scripts/README.txt for the list of scripts)
 
-Good luck, and happy coding.
+Good luck, and happy coding!
 
-* Cosmin Truta (current maintainer, since 2018)
-  Email: cosmin at users.sourceforge.net
-
-* Glenn Randers-Pehrson (former maintainer, 1998-2018)
-  Email: glennrp at users.sourceforge.net
-
-* Andreas Eric Dilger (former maintainer, 1996-1997)
-  Email: adilger at enel.ucalgary.ca
-  Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/
-
-* Guy Eric Schalnat (original author and former maintainer, 1995-1996)
-  (formerly of Group 42, Inc)
-  Email: gschal at infinet.com
+ * Cosmin Truta (current maintainer, since 2018)
+ * Glenn Randers-Pehrson (former maintainer, 1998-2018)
+ * Andreas Eric Dilger (former maintainer, 1996-1997)
+ * Guy Eric Schalnat (original author and former maintainer, 1995-1996)
+   (formerly of Group 42, Inc.)
diff --git a/configure b/configure
index 17fa130..4c8a35e 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libpng 1.6.36.git.
+# Generated by GNU Autoconf 2.69 for libpng 1.6.36.
 #
 # Report bugs to <png-mng-implement@lists.sourceforge.net>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libpng'
 PACKAGE_TARNAME='libpng'
-PACKAGE_VERSION='1.6.36.git'
-PACKAGE_STRING='libpng 1.6.36.git'
+PACKAGE_VERSION='1.6.36'
+PACKAGE_STRING='libpng 1.6.36'
 PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
 PACKAGE_URL=''
 
@@ -1372,7 +1372,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libpng 1.6.36.git to adapt to many kinds of systems.
+\`configure' configures libpng 1.6.36 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1442,7 +1442,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libpng 1.6.36.git:";;
+     short | recursive ) echo "Configuration of libpng 1.6.36:";;
    esac
   cat <<\_ACEOF
 
@@ -1622,7 +1622,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libpng configure 1.6.36.git
+libpng configure 1.6.36
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1954,7 +1954,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libpng $as_me 1.6.36.git, which was
+It was created by libpng $as_me 1.6.36, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2825,7 +2825,7 @@
 
 # Define the identity of the package.
  PACKAGE='libpng'
- VERSION='1.6.36.git'
+ VERSION='1.6.36'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2946,7 +2946,7 @@
 
 
 
-PNGLIB_VERSION=1.6.36.git
+PNGLIB_VERSION=1.6.36
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=6
 PNGLIB_RELEASE=36
@@ -14354,7 +14354,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libpng $as_me 1.6.36.git, which was
+This file was extended by libpng $as_me 1.6.36, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14420,7 +14420,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libpng config.status 1.6.36.git
+libpng config.status 1.6.36
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 9c4f104..1ed63ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,7 +25,7 @@
 
 dnl Version number stuff here:
 
-AC_INIT([libpng],[1.6.36.git],[png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng],[1.6.36],[png-mng-implement@lists.sourceforge.net])
 AC_CONFIG_MACRO_DIR([scripts])
 
 # libpng does not follow GNU file name conventions (hence 'foreign')
@@ -46,7 +46,7 @@
 dnl AM_PREREQ([1.11.2])
 dnl stop configure from automagically running automake
 
-PNGLIB_VERSION=1.6.36.git
+PNGLIB_VERSION=1.6.36
 PNGLIB_MAJOR=1
 PNGLIB_MINOR=6
 PNGLIB_RELEASE=36
diff --git a/libpng-manual.txt b/libpng-manual.txt
index ce2bd11..19cfed2 100644
--- a/libpng-manual.txt
+++ b/libpng-manual.txt
@@ -9,6 +9,10 @@
 
  Based on:
 
+ libpng version 1.6.36 - December 1, 2018
+ Updated and distributed by Cosmin Truta
+ Copyright (c) 2018 Cosmin Truta
+
  libpng versions 0.97, January 1998, through 1.6.35 - July 15, 2018
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2018 Glenn Randers-Pehrson
@@ -63,7 +67,7 @@
 
 The PNG specification (second edition), November 2003, is available as
 a W3C Recommendation and as an ISO Standard (ISO/IEC 15948:2004 (E)) at
-<https://www.w3.org/TR/2003/REC-PNG-20031110/
+<https://www.w3.org/TR/2003/REC-PNG-20031110/>.
 The W3C and ISO documents have identical technical content.
 
 The PNG-1.2 specification is available at
@@ -71,9 +75,9 @@
 It is technically equivalent
 to the PNG specification (second edition) but has some additional material.
 
-The PNG-1.0 specification is available as RFC 2083
+The PNG-1.0 specification is available as RFC 2083 at
 <https://png-mng.sourceforge.io/pub/png/spec/1.0/> and as a
-W3C Recommendation <https://www.w3.org/TR/REC-png-961001>.
+W3C Recommendation at <https://www.w3.org/TR/REC-png-961001>.
 
 Some additional chunks are described in the special-purpose public chunks
 documents at <http://www.libpng.org/pub/png/spec/register/>
diff --git a/libpng.3 b/libpng.3
index 437c6ce..9757deb 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "2018-Jul-29"
+.TH LIBPNG 3 "December 1, 2018"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.6.36.git
+libpng \- Portable Network Graphics (PNG) Reference Library 1.6.36
 
 .SH SYNOPSIS
 \fB#include <png.h>\fP
@@ -528,6 +528,10 @@
 
  Based on:
 
+ libpng version 1.6.36 - December 1, 2018
+ Updated and distributed by Cosmin Truta
+ Copyright (c) 2018 Cosmin Truta
+
  libpng versions 0.97, January 1998, through 1.6.35 - July 15, 2018
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2018 Glenn Randers-Pehrson
@@ -582,7 +586,7 @@
 
 The PNG specification (second edition), November 2003, is available as
 a W3C Recommendation and as an ISO Standard (ISO/IEC 15948:2004 (E)) at
-<https://www.w3.org/TR/2003/REC-PNG-20031110/
+<https://www.w3.org/TR/2003/REC-PNG-20031110/>.
 The W3C and ISO documents have identical technical content.
 
 The PNG-1.2 specification is available at
@@ -590,9 +594,9 @@
 It is technically equivalent
 to the PNG specification (second edition) but has some additional material.
 
-The PNG-1.0 specification is available as RFC 2083
+The PNG-1.0 specification is available as RFC 2083 at
 <https://png-mng.sourceforge.io/pub/png/spec/1.0/> and as a
-W3C Recommendation <https://www.w3.org/TR/REC-png-961001>.
+W3C Recommendation at <https://www.w3.org/TR/REC-png-961001>.
 
 Some additional chunks are described in the special-purpose public chunks
 documents at <http://www.libpng.org/pub/png/spec/register/>
diff --git a/libpngpf.3 b/libpngpf.3
index cd8a942..b736d82 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "2018-Jul-29"
+.TH LIBPNGPF 3 "December 1, 2018"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.6.36.git
+libpng \- Portable Network Graphics (PNG) Reference Library 1.6.36
 (private functions)
 
 .SH SYNOPSIS
diff --git a/png.5 b/png.5
index b5bba26..2077d1f 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "2018-Jul-29"
+.TH PNG 5 "December 1, 2018"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 
diff --git a/png.c b/png.c
index 7ba7f64..3dce191 100644
--- a/png.c
+++ b/png.c
@@ -14,7 +14,7 @@
 #include "pngpriv.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef png_libpng_version_1_6_36_git Your_png_h_is_not_version_1_6_36_git;
+typedef png_libpng_version_1_6_36 Your_png_h_is_not_version_1_6_36;
 
 #ifdef __GNUC__
 /* The version tests may need to be added to, but the problem warning has
@@ -815,7 +815,7 @@
    return PNG_STRING_COPYRIGHT
 #else
    return PNG_STRING_NEWLINE \
-      "libpng version 1.6.36.git" PNG_STRING_NEWLINE \
+      "libpng version 1.6.36" PNG_STRING_NEWLINE \
       "Copyright (c) 2018 Cosmin Truta" PNG_STRING_NEWLINE \
       "Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
       PNG_STRING_NEWLINE \
diff --git a/png.h b/png.h
index 9537786..8e272a0 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.6.36.git
+ * libpng version 1.6.36 - December 1, 2018
  *
  * Copyright (c) 2018 Cosmin Truta
  * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
@@ -13,8 +13,9 @@
  * Authors and maintainers:
  *   libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
  *   libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
- *   libpng versions 0.97, January 1998, through 1.6.35, July 15, 2018:
+ *   libpng versions 0.97, January 1998, through 1.6.35, July 2018:
  *     Glenn Randers-Pehrson.
+ *   libpng version 1.6.36, December 1, 2018: Cosmin Truta
  *   See also "Contributing Authors", below.
  */
 
@@ -237,7 +238,7 @@
  *    ...
  *    1.5.30                  15    10530  15.so.15.30[.0]
  *    ...
- *    1.6.35                  16    10635  16.so.16.35[.0]
+ *    1.6.36                  16    10636  16.so.16.36[.0]
  *
  *    Henceforth the source version will match the shared-library major and
  *    minor numbers; the shared-library major version number will be used for
@@ -257,7 +258,7 @@
  *    in binary compatibility (e.g., when a new feature is added).
  *
  * See libpng.txt or libpng.3 for more information.  The PNG specification
- * is available as a W3C Recommendation and as an ISO Specification,
+ * is available as a W3C Recommendation and as an ISO/IEC Standard; see
  * <https://www.w3.org/TR/2003/REC-PNG-20031110/>
  */
 
@@ -276,8 +277,8 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.6.36.git"
-#define PNG_HEADER_VERSION_STRING " libpng version 1.6.36.git\n"
+#define PNG_LIBPNG_VER_STRING "1.6.36"
+#define PNG_HEADER_VERSION_STRING " libpng version 1.6.36 - December 1, 2018\n"
 
 #define PNG_LIBPNG_VER_SONUM   16
 #define PNG_LIBPNG_VER_DLLNUM  16
@@ -291,7 +292,7 @@
  * PNG_LIBPNG_VER_STRING, omitting any leading zero:
  */
 
-#define PNG_LIBPNG_VER_BUILD  02
+#define PNG_LIBPNG_VER_BUILD  0
 
 /* Release Status */
 #define PNG_LIBPNG_BUILD_ALPHA    1
@@ -308,7 +309,7 @@
 #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
                                        PNG_LIBPNG_BUILD_PRIVATE */
 
-#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA
+#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE
 
 /* Careful here.  At one time, Guy wanted to use 082, but that
  * would be octal.  We must not include leading zeros.
@@ -427,7 +428,7 @@
 /* This triggers a compiler error in png.c, if png.c and png.h
  * do not agree upon the version number.
  */
-typedef char* png_libpng_version_1_6_36_git;
+typedef char* png_libpng_version_1_6_36;
 
 /* Basic control structions.  Read libpng-manual.txt or libpng.3 for more info.
  *
diff --git a/pngconf.h b/pngconf.h
index 3a05b89..5e641b2 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.6.36.git
+ * libpng version 1.6.36
  *
  * Copyright (c) 2018 Cosmin Truta
  * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
diff --git a/pngtest.c b/pngtest.c
index bec7e51..f27e91e 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -2153,4 +2153,4 @@
 #endif
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef png_libpng_version_1_6_36_git Your_png_h_is_not_version_1_6_36_git;
+typedef png_libpng_version_1_6_36 Your_png_h_is_not_version_1_6_36;
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index cba1b80..985271a 100644
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -11,7 +11,7 @@
 
 # Modeled after libxml-config.
 
-version=1.6.36.git
+version=1.6.36
 prefix=""
 libdir=""
 libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 20db29e..2f74923 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -5,6 +5,6 @@
 
 Name: libpng
 Description: Loads and saves PNG files
-Version: 1.6.36.git
+Version: 1.6.36
 Libs: -L${libdir} -lpng16
 Cflags: -I${includedir}
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 622f7cd..00340c6 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -1,8 +1,6 @@
-/* libpng 1.6.36.git STANDARD API DEFINITION */
-
 /* pnglibconf.h - library build configuration */
 
-/* libpng version 1.6.36.git */
+/* libpng version 1.6.36 */
 
 /* Copyright (c) 2018 Cosmin Truta */
 /* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */
