diff --git a/Lib/ufo2ft/filters/flattenComponents.py b/Lib/ufo2ft/filters/flattenComponents.py
index <HASH>..<HASH> 100644
--- a/Lib/ufo2ft/filters/flattenComponents.py
+++ b/Lib/ufo2ft/filters/flattenComponents.py
@@ -36,7 +36,8 @@ def _flattenComponent(glyphSet, component):
     """Returns a list of tuples (baseGlyph, transform) of nested component."""
 
     glyph = glyphSet[component.baseGlyph]
-    if not glyph.components:
+    # Any contour will cause components to be decomposed
+    if not glyph.components or len(glyph) > 0:
         transformation = Transform(*component.transformation)
         return [(component.baseGlyph, transformation)]
Don't flatten components in contour glyphs

Any contour will cause components to be decomposed in TTF.

But more importantly, avoid losing contours in mixed contour-component glyphs when using nested components.