diff --git a/loxi_front_end/frontend.py b/loxi_front_end/frontend.py
index 7d0424f..ab98c26 100644
--- a/loxi_front_end/frontend.py
+++ b/loxi_front_end/frontend.py
@@ -63,12 +63,6 @@
             members = [create_member(m_ast) for m_ast in decl_ast[2]]
             ofclass = OFClass(name=decl_ast[1], members=members)
             ofinput.classes.append(ofclass)
-            if ofclass.name in type_maps.inheritance_map:
-                # Clone class into header class and add to list
-                # TODO figure out if these are actually used
-                ofclass_header = OFClass(ofclass.name + '_header',
-                                         copy.deepcopy(members))
-                ofinput.classes.append(ofclass_header)
         if decl_ast[0] == 'enum':
             enum = OFEnum(name=decl_ast[1], values=[(x[0], x[1]) for x in decl_ast[2]])
             ofinput.enums.append(enum)
diff --git a/loxigen.py b/loxigen.py
index ddb2616..5787791 100755
--- a/loxigen.py
+++ b/loxigen.py
@@ -463,6 +463,15 @@
     lengths of struct members and the set of list and action_id types.
     """
 
+    # Generate header classes for inheritance parents
+    for wire_version, ordered_classes in of_g.ordered_classes.items():
+        classes = versions[of_g.of_version_wire2name[wire_version]]['classes']
+        for cls in ordered_classes:
+            if cls in type_maps.inheritance_map:
+                new_cls = cls + '_header'
+                of_g.ordered_classes[wire_version].append(new_cls)
+                classes[new_cls] = classes[cls]
+
     # Generate action_id classes for OF 1.3
     for wire_version, ordered_classes in of_g.ordered_classes.items():
         if not wire_version in [of_g.VERSION_1_3]:
