3.4.0
diff --git a/NEWS b/NEWS
index 0d4b5dc..dbe1755 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,29 @@
+Overview of changes leading to 3.4.0
+Sunday, February 13, 2022
+====================================
+- Perform sanity checks on shaping results is now part of “harfbuzz” library
+  and can be enabled by setting the buffer flag HB_BUFFER_FLAG_VERIFY.
+  (Behdad Esfahbod)
+- Arabic Mark Transient Reordering Algorithm have been updated to revision 6.
+  (Khaled Hosny)
+- ISO 15924 code for mathematical notation, ‘Zmth’, now maps to the OpenType
+  ‘math’ tag. (Alexis King)
+- It is now possible to get at once all math kerning values for a given glyph
+  at a given corner. (Alexis King)
+- Fix locale_t portability issues on systems the typdef’s it to a void pointer.
+  (Behdad Esfahbod)
+
+- New API:
++HB_BUFFER_FLAG_VERIFY
++HB_OT_TAG_MATH_SCRIPT
++HB_SCRIPT_MATH
++hb_ot_math_kern_entry_t
++hb_ot_math_get_glyph_kernings
+
+- Deprecated API
++HB_OT_MATH_SCRIPT
+
+
 Overview of changes leading to 3.3.2
 Sunday, February 6, 2022
 ====================================
diff --git a/configure.ac b/configure.ac
index 24ee632..24048cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 AC_PREREQ([2.64])
 AC_INIT([HarfBuzz],
-        [3.3.2],
+        [3.4.0],
         [https://github.com/harfbuzz/harfbuzz/issues/new],
         [harfbuzz],
         [http://harfbuzz.org/])
diff --git a/docs/harfbuzz-docs.xml b/docs/harfbuzz-docs.xml
index b96fad3..d81b9fd 100644
--- a/docs/harfbuzz-docs.xml
+++ b/docs/harfbuzz-docs.xml
@@ -116,6 +116,7 @@
       <index id="api-index-full"><title>API Index</title><xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include></index>
       <index id="deprecated-api-index" role="deprecated"><title>Index of deprecated API</title><xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include></index>
 
+      <index id="api-index-3-4-0" role="3.4.0"><title>Index of new symbols in 3.4.0</title><xi:include href="xml/api-index-3.4.0.xml"><xi:fallback /></xi:include></index>
       <index id="api-index-3-3-0" role="3.3.0"><title>Index of new symbols in 3.3.0</title><xi:include href="xml/api-index-3.3.0.xml"><xi:fallback /></xi:include></index>
       <index id="api-index-3-1-0" role="3.1.0"><title>Index of new symbols in 3.1.0</title><xi:include href="xml/api-index-3.1.0.xml"><xi:fallback /></xi:include></index>
       <index id="api-index-3-0-0" role="3.0.0"><title>Index of new symbols in 3.0.0</title><xi:include href="xml/api-index-3.0.0.xml"><xi:fallback /></xi:include></index>
diff --git a/meson.build b/meson.build
index 848c5fb..3e64cba 100644
--- a/meson.build
+++ b/meson.build
@@ -1,6 +1,6 @@
 project('harfbuzz', 'c', 'cpp',
   meson_version: '>= 0.55.0',
-  version: '3.3.2',
+  version: '3.4.0',
   default_options: [
     'cpp_rtti=false',       # Just to support msvc, we are passing -fno-exceptions also anyway
     'cpp_std=c++11',
diff --git a/src/hb-buffer.h b/src/hb-buffer.h
index 7bcdcd9..ee72dfa 100644
--- a/src/hb-buffer.h
+++ b/src/hb-buffer.h
@@ -356,7 +356,7 @@
  * @HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE:
  *                      flag indicating that a dotted circle should
  *                      not be inserted in the rendering of incorrect
- *                      character sequences (such at <0905 093E>). Since: 2.4
+ *                      character sequences (such at <0905 093E>). Since: 2.4.0
  * @HB_BUFFER_FLAG_VERIFY:
  *                      flag indicating that the hb_shape() call and its variants
  *                      should perform various verification processes on the results
@@ -364,7 +364,7 @@
  *                      fails, then either a buffer message is sent, if a message
  *                      handler is installed on the buffer, or a message is written
  *                      to standard error.  In either case, the shaping result might
- *                      be modified to show the failed output.
+ *                      be modified to show the failed output. Since: 3.4.0
  *
  * Flags for #hb_buffer_t.
  *
diff --git a/src/hb-common.h b/src/hb-common.h
index b0c688c..0f0cfe9 100644
--- a/src/hb-common.h
+++ b/src/hb-common.h
@@ -481,7 +481,7 @@
  * @HB_SCRIPT_TANGSA: `Tnsa`, Since: 3.0.0
  * @HB_SCRIPT_TOTO: `Toto`, Since: 3.0.0
  * @HB_SCRIPT_VITHKUQI: `Vith`, Since: 3.0.0
- * @HB_SCRIPT_MATH: `Zmth`, Since: REPLACEME
+ * @HB_SCRIPT_MATH: `Zmth`, Since: 3.4.0
  * @HB_SCRIPT_INVALID: No script set
  *
  * Data type for scripts. Each #hb_script_t's value is an #hb_tag_t corresponding
@@ -699,7 +699,7 @@
   HB_SCRIPT_VITHKUQI			= HB_TAG ('V','i','t','h'), /*14.0*/
 
   /*
-   * Since REPLACEME
+   * Since 3.4.0
    */
   HB_SCRIPT_MATH			= HB_TAG ('Z','m','t','h'),
 
diff --git a/src/hb-ot-deprecated.h b/src/hb-ot-deprecated.h
index f010757..5192ff7 100644
--- a/src/hb-ot-deprecated.h
+++ b/src/hb-ot-deprecated.h
@@ -61,7 +61,7 @@
  * usage is no longer supported. Use #HB_SCRIPT_MATH instead.</note>
  *
  * Since: 1.3.3
- * Deprecated: REPLACEME
+ * Deprecated: 3.4.0
  */
 #define HB_OT_MATH_SCRIPT HB_OT_TAG_MATH_SCRIPT
 
diff --git a/src/hb-ot-math.cc b/src/hb-ot-math.cc
index b1ffc27..f44ac35 100644
--- a/src/hb-ot-math.cc
+++ b/src/hb-ot-math.cc
@@ -211,7 +211,7 @@
  *
  * Return value: the total number of kern values available or zero
  *
- * Since: REPLACEME
+ * Since: 3.4.0
  **/
 unsigned int
 hb_ot_math_get_glyph_kernings (hb_font_t *font,
diff --git a/src/hb-ot-math.h b/src/hb-ot-math.h
index b9e55ba..1378a06 100644
--- a/src/hb-ot-math.h
+++ b/src/hb-ot-math.h
@@ -59,7 +59,7 @@
  * #hb_ot_layout_collect_features. In other cases, #HB_SCRIPT_MATH should be
  * used instead.</note>
  *
- * Since: REPLACEME
+ * Since: 3.4.0
  */
 #define HB_OT_TAG_MATH_SCRIPT HB_TAG('m','a','t','h')
 
@@ -215,7 +215,7 @@
  *
  * Data type to hold math kerning (cut-in) information for a glyph.
  *
- * Since: REPLACEME
+ * Since: 3.4.0
  */
 typedef struct {
   hb_position_t max_correction_height;
diff --git a/src/hb-version.h b/src/hb-version.h
index 493a09f..1f52d92 100644
--- a/src/hb-version.h
+++ b/src/hb-version.h
@@ -47,20 +47,20 @@
  *
  * The minor component of the library version available at compile-time.
  */
-#define HB_VERSION_MINOR 3
+#define HB_VERSION_MINOR 4
 /**
  * HB_VERSION_MICRO:
  *
  * The micro component of the library version available at compile-time.
  */
-#define HB_VERSION_MICRO 2
+#define HB_VERSION_MICRO 0
 
 /**
  * HB_VERSION_STRING:
  *
  * A string literal containing the library version available at compile-time.
  */
-#define HB_VERSION_STRING "3.3.2"
+#define HB_VERSION_STRING "3.4.0"
 
 /**
  * HB_VERSION_ATLEAST: