diff --git a/Tests/svgLib/path/path_test.py b/Tests/svgLib/path/path_test.py
index 0b82193dd..c92ca6801 100644
--- a/Tests/svgLib/path/path_test.py
+++ b/Tests/svgLib/path/path_test.py
@@ -7,7 +7,7 @@ from tempfile import NamedTemporaryFile
SVG_DATA = """\
-
+
-"""
+""".encode(
+ "utf-8"
+)
EXPECTED_PEN_COMMANDS = [
("moveTo", ((100.0, 100.0),)),
diff --git a/requirements.txt b/requirements.txt
index 827bbc820..2a56ea8f9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -16,5 +16,5 @@ pyobjc==10.1; sys_platform == "darwin"
freetype-py==2.4.0
uharfbuzz==0.37.3
glyphsLib==6.6.0 # this is only required to run Tests/varLib/interpolatable_test.py
-lxml==4.9.3
+lxml==5.1.0
sympy==1.12
diff --git a/setup.py b/setup.py
index 302e9b765..1d360e030 100755
--- a/setup.py
+++ b/setup.py
@@ -97,7 +97,7 @@ extras_require = {
# for fontTools.misc.etree and fontTools.misc.plistlib: use lxml to
# read/write XML files (faster/safer than built-in ElementTree)
"lxml": [
- "lxml >= 4.0, < 5",
+ "lxml >= 4.0",
],
# for fontTools.sfnt and fontTools.woff2: to compress/uncompress
# WOFF 1.0 and WOFF 2.0 webfonts.