diff --git a/source/texk/web2c/luatexdir/ChangeLog b/source/texk/web2c/luatexdir/ChangeLog
index d8b6a5d5de636395b67aa3f1ef7bb11b2ec17117..bde59eddcf8c5e2a5045644e7874dc4455a93023 100644
--- a/source/texk/web2c/luatexdir/ChangeLog
+++ b/source/texk/web2c/luatexdir/ChangeLog
@@ -1,3 +1,6 @@
+2022-11-20  Luigi Scarso <luigi.scarso@gmail.com> 
+    * Ensured that load_hyphenation has enough Lua stack, and pops the latest table pushed in (Michal Vlasák).
+
 2022-11-10  Luigi Scarso <luigi.scarso@gmail.com> 
     * Better error message if setlocale fails
 
diff --git a/source/texk/web2c/luatexdir/lang/texlang.c b/source/texk/web2c/luatexdir/lang/texlang.c
index a0d067251b02b8164f5de62eab9e234940267105..f8c60e548dedca8e6a89683737ea49c21c46ccaf 100644
--- a/source/texk/web2c/luatexdir/lang/texlang.c
+++ b/source/texk/web2c/luatexdir/lang/texlang.c
@@ -287,6 +287,7 @@ void load_hyphenation(struct tex_language *lang, const unsigned char *buff)
     int id ;
     if (lang == NULL)
         return;
+    lua_checkstack(Luas, 3);
     if (lang->exceptions == 0) {
         lua_newtable(Luas);
         lang->exceptions = luaL_ref(Luas, LUA_REGISTRYINDEX);
@@ -314,6 +315,7 @@ void load_hyphenation(struct tex_language *lang, const unsigned char *buff)
             }
         }
     }
+    lua_pop(Luas, 1);
 }
 
 void clear_hyphenation(struct tex_language *lang)
diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h
index 2630418c80c8aeebe53e37a678c5eec12ac96adf..cc26f5a97c84bc7798da507a3008d7897e7c5b6b 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1,4 +1,4 @@
 #ifndef luatex_svn_revision_h
 #define luatex_svn_revision_h
-#define luatex_svn_revision 7548
+#define luatex_svn_revision 7549
 #endif