diff --git a/source/texk/web2c/luatexdir/luaffi/ffi.c b/source/texk/web2c/luatexdir/luaffi/ffi.c
index abeeb5f1fe00ab89b9d6f4c2cb79a71527207667..7771b512db5c0d3239d50a718ba1f4d6a3de60d2 100644
--- a/source/texk/web2c/luatexdir/luaffi/ffi.c
+++ b/source/texk/web2c/luatexdir/luaffi/ffi.c
@@ -387,7 +387,12 @@ static size_t unpack_vararg(lua_State* L, int i, char* to)
         } else if (ct.type == INT64_TYPE) {
             *(int64_t*) to = *(int64_t*) p;
             return sizeof(int64_t);
-        }
+
+        } else if (ct.type == FUNCTION_PTR_TYPE) {
+	  *(cfunction *) to = *(cfunction *)p;
+	  return sizeof(cfunction);
+	}
+
         goto err;
 
     case LUA_TNIL:
diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h
index a9ed18e68d9eebb989d9acfdf34c5e925b851357..7ebe8828c8d3c075191c652cf8d4f01d3a9d77eb 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1 +1 @@
-#define luatex_svn_revision 6390
+#define luatex_svn_revision 6391