diff --git a/tests/makeotfexe_data/expected_output/bug811.ttx b/tests/makeotfexe_data/expected_output/bug811.ttx
new file mode 100644
index 000000000..8eb6bc7ea
--- /dev/null
+++ b/tests/makeotfexe_data/expected_output/bug811.ttx
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/makeotfexe_data/input/bug811/feat.fea b/tests/makeotfexe_data/input/bug811/feat.fea
new file mode 100644
index 000000000..3b60d1385
--- /dev/null
+++ b/tests/makeotfexe_data/input/bug811/feat.fea
@@ -0,0 +1,19 @@
+
+table head {
+ FontRevision 1.011;
+} head;
+
+languagesystem DFLT dflt;
+
+# Copeid loosely from SourceCodeProRegular
+@mGC_above_300_500 = [.notdef];
+@mGC_above_300_680 = [a];
+
+markClass @mGC_above_300_500 @MC_above;
+markClass @mGC_above_300_680 @MC_above;
+
+feature GPS4 {
+
+ pos base .notdef mark @MC_above;
+ pos base a mark @MC_above;
+} GPS4;
\ No newline at end of file
diff --git a/tests/makeotfexe_data/input/bug811/font.pfa b/tests/makeotfexe_data/input/bug811/font.pfa
new file mode 100644
index 000000000..4e103e905
--- /dev/null
+++ b/tests/makeotfexe_data/input/bug811/font.pfa
@@ -0,0 +1,71 @@
+%!FontType1-1.1: SourceSerifPro-Regular 1.0
+%ADOt1write: (1.0.34)
+%%BeginResource: font SourceSerifPro-Regular
+12 dict dup begin
+/FontType 1 def
+/FontName /SourceSerifPro-Regular def
+/FontInfo 7 dict dup begin
+/version (1.0) def
+/Notice (Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.) def
+/Copyright (Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.) def
+/FamilyName (Source Serif Pro) def
+end def
+/PaintType 0 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/Encoding StandardEncoding def
+/FontBBox {-151 10 531 820} def
+end
+currentfile eexec BAB431EA06BB0A1031E1AA11919E714AC69FC6474167B6
+17C8FF56014245E5C1290C81D5312994CDC47B07C655DDD53C35D530C44F953F
+804152D5ED7591016D3D1968FC4A9F629E0ADB83B91691E8A0AB81C098760580
+FFC73B03E534FD00C1C69885C6151AADEBF9BBF7284F088A81EB0A35C6F197CE
+C173C8CE58E9B3FBEBF7D49545999FA57A7A5A1B26B5A043EFA3B327BCA94F18
+86E0147BE33716D304B24CEB7E89D8626444FA1EE116EEBDBB6E33ADDEEFE14E
+2DC12D84FE2170D0C1780958ED3BA07FA26741A6FE7B905C5C7EEBF87FCB87C1
+152EDB0A053EABFA5158B67F1A5FCAB305A3629E5742EFE1F03AC8B914674ACF
+3561EFE1F3F63FF9DBDD6BB3656F8CAC8FBFED6BD0268D01803B872E3A013E37
+5E2A88A23DC6AC16C2DD6BA37DCBFCFB2BE8BC3C0D50AC62B7BDA8EC036FA5B7
+B6FDC19EE2F7A8DFDAAAB8848D2767B945658D7A76FC1DC150D2C7C4D439E4C6
+5AE8D4C78D4753139A826042642E768DC6BA0A299C7AE0A73D34103BBAFC28DF
+F5EFF54B907D95B1DF08E675550F13A4B6604FFC17CA288FD1CC7096D726C6B2
+C054C7751CFC7AC8BF1ED6A32D66511AEED2FA6C37F117589FACCB71230099ED
+F18616A45F1BFC054DCBF2EC0EA1161B068E764A4E1DE82AEA5A3E8E8BC2FF43
+2AB25FA09826009C4E4715E197E2EE9ED128ED2BB342DE97667709F7B28D45C6
+38B1E5186AC11D136CC3448E9AA6D4C4770E08E841776F6509E0ED7BE47AE414
+63D9C6E8E7F01358B19E81946781DC46AD622636645323AC9E8F54DE259C72AD
+22897189FE0F94DACB63A12DCC91B36ABC6DF0B40893506F3140928B9655EB7D
+EF30A3DB087744731F1B354F905087C09442F619A708632B420698677F88B48A
+8E2F10E9A1BFD691701F3F9A7F4CA7AE962B35932B420A169FFC7D68D73BA28A
+2E4EDA6F7AF4043AC8A0504DA03A807E596A33D931C86DBD515DF7785F37DDD4
+474042CC4F4162256A72D27DCD5652CA25875780DC8D08C77D206AC4B2283BDC
+ACE78B97B16C36FAAC198AC144BBB28667AD4735F92BF68422AB02503228222A
+FE28DF3EA257CAC35C50DA04BDFF02BCC2A768ED0E596CD52A5BE194D1DEDDC5
+E2C98671187FC42A5266E0FE0F5E54CED9DC3033002EA38F173D29C447057E67
+995899943096075A9679EB9DD294E7F21BF963B1740125A70AA528B388FB3667
+F42E599A3A9E8E61BAD3C618A84E3544C275B99890D4957901A17816667037F1
+F9A2CBDB29D186A57007B593A1C82EE07C1E7BEC56AFF1DB899E317E47E438F6
+F9E8048B4125773C9B10B7889DB3F0294E30A40009DCDB637900B59441DBA845
+04BC70EECDCCF3774CEC136C4D516DD4BBAF09DD31E61CDE7B53CB4E8D95EC50
+A6F9B29010E4534C0F87A93CFCB7B003E348C35966F6FCE678E52C6565A6F2A8
+4C8015D13E43C4B83C4C157D3CA080CD9D14EA84507450A5D8BFAD55162955AC
+6ADE9AABEAC482F8FE01C3DD49E85794826384FDED2C4A58DCC6949E9C1C8BD5
+558DCA00A4A68A0947C8F2BC1A2CA0512C43CD88610CB79EE47D00FE2011CFA5
+9EDE376FC214890CA0AC278FCE390889CFE4A1F4CB3E93DDA1311FB3CDBE8031
+3C1E765AFB46B6D66B9FFAC8EE3FAAFA660E91FC528BD0507BAC8978F74B5C5D
+FA73FD286E1549874CF0D583E4FB4FDDB10EC6450DC16FB67EFB4B876F327613
+5D487765CD6D67AD6C1AA8F82D4E37B1CB943177C0BA9A23B7F593CD156E4391
+3DD4777C9B9BF1575E2B7BE21F0BA40D062C8FBBF68A64119736ABD5C6CF5BEF
+41A6E9528CA8B0AAFF647AF80B5EF8EFA8A4D960B3D9165B2C0011B77F2FD5F1
+C3DCB2E2432E8E65283DC59BF83B6723CA8B2F1712E8540913A21126BB644A90
+51A91F3CDEB3A1DB1CA41E65084F7C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+%%EOF
diff --git a/tests/makeotfexe_test.py b/tests/makeotfexe_test.py
index 4c3d0819f..4da80436e 100644
--- a/tests/makeotfexe_test.py
+++ b/tests/makeotfexe_test.py
@@ -416,3 +416,16 @@ def test_parameter_offset_overflow_bug746():
with open(stderr_path, 'rb') as f:
output = f.read()
assert(b"[FATAL] feature parameter offset too large") in output
+
+
+def test_base_anchor_bug811():
+ input_filename = "bug811/font.pfa"
+ feat_filename = get_input_path('bug811/feat.fea')
+ actual_path = get_temp_file_path()
+ ttx_filename = "bug811.ttx"
+ runner(CMD + ['-o', 'f', '_{}'.format(get_input_path(input_filename)),
+ 'ff', '_{}'.format(get_input_path(feat_filename)),
+ 'o', '_{}'.format(actual_path)])
+ actual_ttx = generate_ttx_dump(actual_path, ['GPOS'])
+ expected_ttx = get_expected_path(ttx_filename)
+ assert differ([expected_ttx, actual_ttx, '-s', '