diff --git a/Lib/fontTools/subset/__init__.py b/Lib/fontTools/subset/__init__.py
index 14af6797b..e5857dd79 100644
--- a/Lib/fontTools/subset/__init__.py
+++ b/Lib/fontTools/subset/__init__.py
@@ -2407,12 +2407,27 @@ def prune_post_subset(self, options):
for subr in subrs.items:
subr.subset_subroutines (local_subrs, font.GlobalSubrs)
+ # Delete local SubrsIndex if empty
+ if hasattr(font, 'FDSelect'):
+ for fd in font.FDArray:
+ _delete_empty_subrs(fd.Private)
+ else:
+ _delete_empty_subrs(font.Private)
+
# Cleanup
for subrs in all_subrs:
del subrs._used, subrs._old_bias, subrs._new_bias
return True
+
+def _delete_empty_subrs(private_dict):
+ if hasattr(private_dict, 'Subrs') and not private_dict.Subrs:
+ if 'Subrs' in private_dict.rawDict:
+ del private_dict.rawDict['Subrs']
+ del private_dict.Subrs
+
+
@_add_method(ttLib.getTableClass('cmap'))
def closure_glyphs(self, s):
tables = [t for t in self.tables if t.isUnicode()]
diff --git a/Tests/subset/data/expect_desubroutinize_CFF.ttx b/Tests/subset/data/expect_desubroutinize_CFF.ttx
index ab08088b1..81b536904 100644
--- a/Tests/subset/data/expect_desubroutinize_CFF.ttx
+++ b/Tests/subset/data/expect_desubroutinize_CFF.ttx
@@ -33,9 +33,6 @@
-
-
-
diff --git a/Tests/subset/data/expect_no_hinting_desubroutinize_CFF.ttx b/Tests/subset/data/expect_no_hinting_desubroutinize_CFF.ttx
index 149f09594..7f44c90fa 100644
--- a/Tests/subset/data/expect_no_hinting_desubroutinize_CFF.ttx
+++ b/Tests/subset/data/expect_no_hinting_desubroutinize_CFF.ttx
@@ -32,9 +32,6 @@
-
-
-
diff --git a/Tests/subset/data/expect_no_notdef_outline_cid.ttx b/Tests/subset/data/expect_no_notdef_outline_cid.ttx
index 4e87cc126..5167c2cf1 100644
--- a/Tests/subset/data/expect_no_notdef_outline_cid.ttx
+++ b/Tests/subset/data/expect_no_notdef_outline_cid.ttx
@@ -43,9 +43,6 @@
-
-
-
diff --git a/Tests/subset/data/expect_no_notdef_outline_otf.ttx b/Tests/subset/data/expect_no_notdef_outline_otf.ttx
index 498a44b4e..22273c7c4 100644
--- a/Tests/subset/data/expect_no_notdef_outline_otf.ttx
+++ b/Tests/subset/data/expect_no_notdef_outline_otf.ttx
@@ -33,9 +33,6 @@
-
-
-
diff --git a/Tests/subset/data/expect_notdef_width_cid.ttx b/Tests/subset/data/expect_notdef_width_cid.ttx
index c0bab754f..ccd0f65fc 100644
--- a/Tests/subset/data/expect_notdef_width_cid.ttx
+++ b/Tests/subset/data/expect_notdef_width_cid.ttx
@@ -38,9 +38,6 @@
-
-
-
@@ -56,9 +53,6 @@
-
-
-