diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c51e136..bb078e2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -76,7 +76,7 @@
 
 
 # Format of job names:
-# <OS> <Build-Tool> <Build-Params> <Architecture> 
+# <OS> <Build-Tool> <Build-Params> <Architecture>
 
 
 # Windows jobs.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 554b580..d31ab17 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -164,7 +164,7 @@
 
 set(VERSION_MAJOR "2")
 set(VERSION_MINOR "13")
-set(VERSION_PATCH "0")
+set(VERSION_PATCH "1")
 
 # Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
 set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
diff --git a/README b/README
index 327b94d..eb48e7e 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-FreeType 2.13.0
+FreeType 2.13.1
 ===============
 
 Homepage: https://www.freetype.org
@@ -32,9 +32,9 @@
 
 and download one of the following files.
 
-  freetype-doc-2.13.0.tar.xz
-  freetype-doc-2.13.0.tar.gz
-  ftdoc2130.zip
+  freetype-doc-2.13.1.tar.xz
+  freetype-doc-2.13.1.tar.gz
+  ftdoc2131.zip
 
 To view the documentation online, go to
 
diff --git a/builds/mac/README b/builds/mac/README
index 092487a..06e3d51 100644
--- a/builds/mac/README
+++ b/builds/mac/README
@@ -200,14 +200,6 @@
   behaviours are not tested at all. Building ftdemos
   for classic MacOS and working test is required.
 
-  4-3. Porting Jam onto MPW
-  -------------------------
-
-  FreeType uses Jam (and FT-Jam) for unified cross-
-  platform building tool. At present, Jam is not ported
-  to MPW. To update classic MacOS support easily,
-  building by Jam is expected on MPW.
-
 
 APPENDIX I
 ----------
diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw
index 8e98283..2c15202 100644
--- a/builds/unix/configure.raw
+++ b/builds/unix/configure.raw
@@ -17,7 +17,7 @@
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='25:0:19'
+version_info='26:0:20'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
diff --git a/builds/wince/vc2005-ce/index.html b/builds/wince/vc2005-ce/index.html
index 0a8b3c6..cef32c1 100644
--- a/builds/wince/vc2005-ce/index.html
+++ b/builds/wince/vc2005-ce/index.html
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.13.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.1 sources:</p>
 
 <ul>
   <pre>
diff --git a/builds/wince/vc2008-ce/index.html b/builds/wince/vc2008-ce/index.html
index 747370a..1d36f60 100644
--- a/builds/wince/vc2008-ce/index.html
+++ b/builds/wince/vc2008-ce/index.html
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.13.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.1 sources:</p>
 
 <ul>
   <pre>
diff --git a/builds/windows/vc2010/index.html b/builds/windows/vc2010/index.html
index c03be77..95e27e6 100644
--- a/builds/windows/vc2010/index.html
+++ b/builds/windows/vc2010/index.html
@@ -12,7 +12,7 @@
 <p>This directory contains solution and project files for
 Visual&nbsp;C++&nbsp;2010 or newer, named <tt>freetype.sln</tt>,
 and <tt>freetype.vcxproj</tt>.  It compiles the following libraries
-from the FreeType 2.13.0 sources:</p>
+from the FreeType 2.13.1 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>
diff --git a/builds/windows/visualc/index.html b/builds/windows/visualc/index.html
index 6a70b34..de957a6 100644
--- a/builds/windows/visualc/index.html
+++ b/builds/windows/visualc/index.html
@@ -12,7 +12,7 @@
 <p>This directory contains project files <tt>freetype.dsp</tt> for
 Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
 through 2008, which you might need to upgrade automatically.
-It compiles the following libraries from the FreeType 2.13.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.1 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>
diff --git a/builds/windows/visualce/index.html b/builds/windows/visualce/index.html
index cebab29..706924a 100644
--- a/builds/windows/visualce/index.html
+++ b/builds/windows/visualce/index.html
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.13.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.1 sources:</p>
 
 <ul>
   <pre>
diff --git a/docs/CHANGES b/docs/CHANGES
index 7562f10..b6ad1ce 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -1,4 +1,4 @@
-CHANGES BETWEEN 2.13.0 and 2.13.1 (2023-XXX-XX)
+CHANGES BETWEEN 2.13.0 and 2.13.1 (2023-Jun-24)
 
   I. MISCELLANEOUS
 
@@ -8,6 +8,33 @@
   - A new load flag `FT_LOAD_NO_SVG` to make FreeType ignore glyphs in
     an 'SVG ' table.
 
+  - New  function  `FT_GlyphSlot_AdjustWeight`  to  adjust  the  glyph
+    weight either  horizontally or  vertically.  This  is part  of the
+    `ftsynth.h` header file, which is  still considered to be in alpha
+    stage.
+
+  - TrueType interpreter  version 38 (also known  as 'Infinality') has
+    been deactivated; the value  of `TT_INTERPRETER_VERSION_38` is now
+    the same as `TT_INTERPRETER_VERSION_40`.
+
+  - Updated OpenVMS support.
+
+  - The  base  API  documentation  has  been  modularized  for  easier
+    handling.
+
+  - Switching named instances on and  off in Variation Fonts was buggy
+    if the design coordinates didn't change.
+
+  - `ftbench`  has a  new  command-line option  `-a`  to apply  design
+    coordinates.
+
+  - `ftview` can now flip SVG rendering on and off using the 'Z' key.
+
+  - In  `ftmulti` it  is  now possible  to toggle  the  fill rule  and
+    overlap flag  used for  rendering glyphs using  the 'F3'  and 'F4'
+    keys,  respectively.   Toggling  the anti-aliased  mode  has  been
+    changed to the 'TAB' key.
+
 
 ======================================================================
 
diff --git a/docs/README b/docs/README
index d71fd37..c2b5af8 100644
--- a/docs/README
+++ b/docs/README
@@ -18,8 +18,6 @@
     - This may or may not require internet access every time depending on
     pip and system caching.
 
-This also works with Jam: Just type `jam refdoc' in the main directory.
-
 Some troubleshooting tips:
 
 * Regularly run `pip install --upgrade docwriter' to check for updates which
diff --git a/docs/VERSIONS.TXT b/docs/VERSIONS.TXT
index 92f6a8c..eb71fd0 100644
--- a/docs/VERSIONS.TXT
+++ b/docs/VERSIONS.TXT
@@ -60,6 +60,7 @@
 
     release     libtool     so
   -------------------------------
+     2.13.1     26.0.20   6.20.0
      2.13.0     25.0.19   6.19.0
      2.12.1     24.3.18   6.18.3
      2.12.0     24.2.18   6.18.2
diff --git a/docs/formats.txt b/docs/formats.txt
index 3d03c01..882d62d 100644
--- a/docs/formats.txt
+++ b/docs/formats.txt
@@ -199,7 +199,7 @@
     defined in the OpenType specification 1.6 and newer.
 
 [7] `The Type 1 GX Font Format' (dated 1995-09-27)  was distributed in
-    Apple Developer CD-ROM in those days.  The content of `TYP1' table 
+    Apple Developer CD-ROM in those days.  The content of `TYP1' table
     is a PostScript Type 1 font without the eexec encryption.  Current
     versions of FreeType don't not support this format,  but FontForge
     can load it.
diff --git a/docs/freetype-config.1 b/docs/freetype-config.1
index 6459431..cc6f300 100644
--- a/docs/freetype-config.1
+++ b/docs/freetype-config.1
@@ -1,4 +1,4 @@
-.TH FREETYPE-CONFIG 1 "February 2023" "FreeType 2.13.0"
+.TH FREETYPE-CONFIG 1 "June 2023" "FreeType 2.13.1"
 .
 .
 .SH NAME
diff --git a/docs/release b/docs/release
index fec91e8..c296efc 100644
--- a/docs/release
+++ b/docs/release
@@ -15,33 +15,53 @@
 
 . docs/VERSIONS.TXT: Document changed `version_info`.
 
-. Clone the git archive to another directory with
+. Update the 'dlg' submodule with
 
-    git clone -l -s . ../freetype.test
+    git submodule foreach git pull origin master
 
-  or something like this and run
+. Copy the submodule code with
 
-    make distclean; make devel; make
-    make distclean; make devel; make multi
-    make distclean; make devel CC=g++; make CC=g++
-    make distclean; make devel CC=g++; make multi CC=g++
+    make copy_submodule
+
+  and run
+
+    make distclean && make devel && make
+    make distclean && make devel && make multi
+    make distclean && make devel CC=g++ && make CC=g++ ANSIFLAGS=""
+    make distclean && make devel CC=g++ && make multi CC=g++ ANSIFLAGS=""
 
     sh autogen.sh
-    make distclean; ./configure CC=g++; make
+    make distclean && ./configure CC=g++ && make ANSIFLAGS=""
 
-  in the cloned repository to test compilation with both gcc and g++.
+  to test compilation with both gcc and g++ (you might also add the `-j`
+  flag to `make` for parallel compilation).
 
   Note that it is normally not necessary to test standard C
   compilation with the `configure`, `meson`, and `cmake` build tools
-  since this is done by the CI process of 'gitlab.freetype.org' for
+  since this is done by the CI process of 'gitlab.freedesktop.org' for
   every commit.
 
-. Test C++ compilation for 'freetype-demos' too (using `git clone` as
-  above).
+. Test C++ compilation for 'freetype-demos' too; this needs a compiled
+  FreeType library as described in the `README` file.
+
+    make distclean && make
+    make distclean && make CC=g++ ANSIFLAGS=""
 
 . Run `src/tools/chktrcmp.py` and check that there are no undefined
   `trace_XXXX` macros.
 
+. Update meson subproject files (for both the 'freetype' and
+  'freetype-demos' git repositories) with
+
+    meson subprojects update
+
+. Test meson compilation (for both the 'freetype' and 'freetype-demos'
+  git repositories) with
+
+    meson setup builddir && meson compile -C builddir
+
+. Commit everything.
+
 . After pushing the new release, tag the git repositories ('freetype',
   'freetype-demos') with
 
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index 81f0e86..4a074a4 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -5222,7 +5222,7 @@
    */
 #define FREETYPE_MAJOR  2
 #define FREETYPE_MINOR  13
-#define FREETYPE_PATCH  0
+#define FREETYPE_PATCH  1
 
 
   /**************************************************************************
diff --git a/src/base/ftver.rc b/src/base/ftver.rc
index f113cb8..c7155d5 100644
--- a/src/base/ftver.rc
+++ b/src/base/ftver.rc
@@ -18,8 +18,8 @@
 
 #include<windows.h>
 
-#define FT_VERSION      2,13,0,0
-#define FT_VERSION_STR  "2.13.0"
+#define FT_VERSION      2,13,1,0
+#define FT_VERSION_STR  "2.13.1"
 
 VS_VERSION_INFO      VERSIONINFO
 FILEVERSION          FT_VERSION
diff --git a/src/cid/cidgload.c b/src/cid/cidgload.c
index 0e6a7ad..eaca765 100644
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -92,7 +92,7 @@
       *off1_p = off1;
     if ( off2_p )
       *off2_p = off2;
-  
+
     if ( fd_select >= cid->num_dicts )
     {
       /*
@@ -147,7 +147,7 @@
       if ( need_frame_exit )
         FT_FRAME_EXIT();
 
-    return error; 
+    return error;
   }
 
 
diff --git a/src/type1/t1afm.c b/src/type1/t1afm.c
index 24ade04..d9b9398 100644
--- a/src/type1/t1afm.c
+++ b/src/type1/t1afm.c
@@ -299,7 +299,7 @@
       /* ascender and descender are optional and could both be zero */
       /* check if values are meaningful before overriding defaults  */
       if ( fi->Ascender > fi->Descender )
-      {  
+      {
         /* no `U' suffix here to 0x8000! */
         t1_face->ascender  = (FT_Short)( ( fi->Ascender  + 0x8000 ) >> 16 );
         t1_face->descender = (FT_Short)( ( fi->Descender + 0x8000 ) >> 16 );
diff --git a/subprojects/dlg b/subprojects/dlg
index d142e64..72dfcc8 160000
--- a/subprojects/dlg
+++ b/subprojects/dlg
@@ -1 +1 @@
-Subproject commit d142e646e263c89f93663e027c2f0d03739ab42d
+Subproject commit 72dfcc858c040c54a6a0b88fcb7e70ee186d3167
diff --git a/subprojects/libpng.wrap b/subprojects/libpng.wrap
index 12ba5b1..68abec8 100644
--- a/subprojects/libpng.wrap
+++ b/subprojects/libpng.wrap
@@ -3,10 +3,11 @@
 source_url = https://github.com/glennrp/libpng/archive/v1.6.39.tar.gz
 source_filename = libpng-1.6.39.tar.gz
 source_hash = a00e9d2f2f664186e4202db9299397f851aea71b36a35e74910b8820e380d441
-patch_filename = libpng_1.6.39-2_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/libpng_1.6.39-2/get_patch
-patch_hash = 8bcf8f69f50233f3a35e3718ab3c91b0c51b4c1a08a84c87be0b1f4813adf17f
-wrapdb_version = 1.6.39-2
+patch_filename = libpng_1.6.39-3_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/libpng_1.6.39-3/get_patch
+patch_hash = 6af2a8d464e3f1d2e2832580896323ac7b0b786806c75f0eff0c8ec82dd603ec
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libpng_1.6.39-3/libpng-1.6.39.tar.gz
+wrapdb_version = 1.6.39-3
 
 [provide]
 libpng = libpng_dep
diff --git a/subprojects/zlib.wrap b/subprojects/zlib.wrap
index 23af071..4f19672 100644
--- a/subprojects/zlib.wrap
+++ b/subprojects/zlib.wrap
@@ -1,12 +1,13 @@
 [wrap-file]
 directory = zlib-1.2.13
 source_url = http://zlib.net/fossils/zlib-1.2.13.tar.gz
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/zlib_1.2.13-4/zlib-1.2.13.tar.gz
 source_filename = zlib-1.2.13.tar.gz
 source_hash = b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30
-patch_filename = zlib_1.2.13-2_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/zlib_1.2.13-2/get_patch
-patch_hash = a7abea3ad65dc2c291ad5fbbf5355d0585a7f7b8c935d4a74335b8fe18684506
-wrapdb_version = 1.2.13-2
+patch_filename = zlib_1.2.13-4_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/zlib_1.2.13-4/get_patch
+patch_hash = 19636b7807e679b92240bc7a99aed85d1be908a45430b12c7687a825cb499d5e
+wrapdb_version = 1.2.13-4
 
 [provide]
 zlib = zlib_dep
