diff --git a/Lib/fontTools/varLib/merger.py b/Lib/fontTools/varLib/merger.py
index ef9860999..5a3a4f343 100644
--- a/Lib/fontTools/varLib/merger.py
+++ b/Lib/fontTools/varLib/merger.py
@@ -263,7 +263,7 @@ def merge(merger, self, lst):
# If all have same coverage table and all are format 1,
coverageGlyphs = self.Coverage.glyphs
if all(v.Format == 1 for v in lst) and all(coverageGlyphs == v.Coverage.glyphs for v in lst):
- self.Value = otBase.ValueRecord(valueFormat)
+ self.Value = otBase.ValueRecord(valueFormat, self.Value)
if valueFormat != 0:
merger.mergeThings(self.Value, [v.Value for v in lst])
self.ValueFormat = self.Value.getFormat()
diff --git a/Tests/varLib/instancer/data/SinglePos.ttx b/Tests/varLib/instancer/data/SinglePos.ttx
new file mode 100644
index 000000000..64ffd9f51
--- /dev/null
+++ b/Tests/varLib/instancer/data/SinglePos.ttx
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Optical Size
+
+
+ Weight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ opsz
+ 0x0
+ 17.0
+ 18.0
+ 18.0
+ 256
+
+
+ wght
+ 0x0
+ 400.0
+ 400.0
+ 700.0
+ 257
+
+
+
+
diff --git a/Tests/varLib/instancer/data/test_results/SinglePos-VF-instance-280,18.ttx b/Tests/varLib/instancer/data/test_results/SinglePos-VF-instance-280,18.ttx
new file mode 100644
index 000000000..2c284ba0e
--- /dev/null
+++ b/Tests/varLib/instancer/data/test_results/SinglePos-VF-instance-280,18.ttx
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Optical Size
+
+
+ Weight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/varLib/instancer/instancer_test.py b/Tests/varLib/instancer/instancer_test.py
index 37d3da48a..bb2d17585 100644
--- a/Tests/varLib/instancer/instancer_test.py
+++ b/Tests/varLib/instancer/instancer_test.py
@@ -1476,6 +1476,23 @@ class InstantiateVariableFontTest(object):
assert _dump_ttx(instance) == expected
+ def test_singlepos(self):
+ varfont = ttLib.TTFont(recalcTimestamp=False)
+ varfont.importXML(os.path.join(TESTDATA, "SinglePos.ttx"))
+
+ location = {"wght": 280, "opsz": 18}
+
+ instance = instancer.instantiateVariableFont(
+ varfont, location,
+ )
+
+ expected = _get_expected_instance_ttx(
+ "SinglePos", *location.values()
+ )
+
+ assert _dump_ttx(instance) == expected
+
+
def _conditionSetAsDict(conditionSet, axisOrder):
result = {}