diff --git a/py_gen/codegen.py b/py_gen/codegen.py
index 45adc5d..01dd782 100644
--- a/py_gen/codegen.py
+++ b/py_gen/codegen.py
@@ -26,6 +26,7 @@
 # under the EPL.
 
 from collections import namedtuple
+import struct
 import of_g
 import loxi_front_end.type_maps as type_maps
 import loxi_utils.loxi_utils as utils
@@ -37,6 +38,7 @@
 Member = namedtuple('Member', ['name', 'oftype', 'offset', 'skip'])
 LengthMember = namedtuple('LengthMember', ['name', 'oftype', 'offset'])
 TypeMember = namedtuple('TypeMember', ['name', 'oftype', 'offset', 'value'])
+PadMember = namedtuple('PadMember', ['offset', 'length'])
 
 def get_type_values(cls, version):
     """
@@ -116,16 +118,14 @@
                                           oftype=oftype.OFType(member['m_type'], version),
                                           value=type_values[member['name']]))
                 type_members.append(members[-1])
-            else: # HACK ensure member names are unique
-                if member['name'].startswith("pad"):
-                    if pad_count == 0:
-                        m_name = 'pad'
-                    else:
-                        m_name = "pad%d" % pad_count
-                    pad_count += 1
-                else:
-                    m_name = member['name']
-                members.append(Member(name=m_name,
+            elif member['name'].startswith("pad"):
+                # HACK this should be moved to the frontend
+                pad_oftype = oftype.OFType(member['m_type'], version)
+                length = struct.calcsize("!" + pad_oftype._pack_fmt())
+                if pad_oftype.is_array: length *= pad_oftype.array_length
+                members.append(PadMember(offset=member['offset'], length=length))
+            else:
+                members.append(Member(name=member['name'],
                                       oftype=oftype.OFType(member['m_type'], version),
                                       offset=member['offset'],
                                       skip=member['name'] in of_g.skip_members))
diff --git a/py_gen/templates/_pack.py b/py_gen/templates/_pack.py
index 15645ee..66ee763 100644
--- a/py_gen/templates/_pack.py
+++ b/py_gen/templates/_pack.py
@@ -26,7 +26,7 @@
 :: # under the EPL.
 ::
 :: # TODO coalesce format strings
-:: from py_gen.codegen import Member, LengthMember, TypeMember
+:: from py_gen.codegen import Member, LengthMember, TypeMember, PadMember
 :: length_member = None
 :: length_member_index = None
 :: index = 0
@@ -35,6 +35,8 @@
 ::         length_member = m
 ::         length_member_index = index
         packed.append(${m.oftype.gen_pack_expr('0')}) # placeholder for ${m.name} at index ${length_member_index}
+::     elif type(m) == PadMember:
+        packed.append('\x00' * ${m.length})
 ::     else:
         packed.append(${m.oftype.gen_pack_expr('self.' + m.name)})
 ::     #endif
diff --git a/py_gen/templates/_unpack.py b/py_gen/templates/_unpack.py
index 6003725..91186cc 100644
--- a/py_gen/templates/_unpack.py
+++ b/py_gen/templates/_unpack.py
@@ -26,8 +26,11 @@
 :: # under the EPL.
 ::
 :: # TODO coalesce format strings
-:: from py_gen.codegen import Member, LengthMember, TypeMember
+:: from py_gen.codegen import Member, LengthMember, TypeMember, PadMember
 :: for m in ofclass.members:
+::     if type(m) == PadMember:
+::         continue
+::     #endif
 ::     unpack_expr = m.oftype.gen_unpack_expr('buf', m.offset)
 ::     if type(m) == LengthMember:
         _length = ${unpack_expr}
diff --git a/py_gen/tests/of10.py b/py_gen/tests/of10.py
index faa3a3e..e636973 100644
--- a/py_gen/tests/of10.py
+++ b/py_gen/tests/of10.py
@@ -690,11 +690,9 @@
     eth_dst = cd:ef:01:23:45:67,
     vlan_vid = 0x0,
     vlan_pcp = 0x0,
-    pad = 0x0,
     eth_type = 0x0,
     ip_dscp = 0x0,
     ip_proto = 0x0,
-    pad1 = [ 0, 0 ],
     ipv4_src = 192.168.3.127,
     ipv4_dst = 255.255.255.255,
     tcp_src = 0x0,
@@ -709,7 +707,7 @@
   flags = 0x0,
   actions = [
     output { port = OFPP_FLOOD, max_len = 0x0 },
-    nicira_dec_ttl { pad = 0x0, pad1 = 0x0 },
+    nicira_dec_ttl {  },
     bsn_set_tunnel_dst { dst = 0x0 }
   ]
 }"""
