diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py
index a106f2aff..2e87545d3 100644
--- a/Lib/fontTools/varLib/__init__.py
+++ b/Lib/fontTools/varLib/__init__.py
@@ -257,8 +257,8 @@ def _add_avar(font, axes, mappings, axisTags):
varIdxes = {axis: optimized[value] for axis, value in varIdxes.items()}
varIdxMap = ot.DeltaSetIndexMap()
- varIdxMap.Format = 1
varIdxMap.mapping = [varIdxes[t] for t in axisTags]
+ varIdxMap.Format = 1 if len(varIdxMap.mapping) > 0xFFFF else 0
avar.majorVersion = 2
avar.table = ot.avar()
diff --git a/Tests/varLib/data/BuildAvar2.designspace b/Tests/varLib/data/BuildAvar2.designspace
new file mode 100644
index 000000000..0a22fe6aa
--- /dev/null
+++ b/Tests/varLib/data/BuildAvar2.designspace
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Weight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/varLib/data/test_results/BuildAvar2.ttx b/Tests/varLib/data/test_results/BuildAvar2.ttx
new file mode 100644
index 000000000..1b16099c9
--- /dev/null
+++ b/Tests/varLib/data/test_results/BuildAvar2.ttx
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/varLib/varLib_test.py b/Tests/varLib/varLib_test.py
index a8f7a4574..cffd32f90 100644
--- a/Tests/varLib/varLib_test.py
+++ b/Tests/varLib/varLib_test.py
@@ -227,6 +227,19 @@ class BuildTest(unittest.TestCase):
expected_ttx_name=test_name,
)
+ def test_varlib_avar2(self):
+ """Designspace file contains a 'weight' axis with