diff --git a/wireshark_gen/__init__.py b/wireshark_gen/__init__.py
index 9bc3662..0ab5a95 100644
--- a/wireshark_gen/__init__.py
+++ b/wireshark_gen/__init__.py
@@ -35,7 +35,7 @@
 
 templates_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'templates')
 
-DissectorField = namedtuple("DissectorField", ["fullname", "name", "type", "base"])
+DissectorField = namedtuple("DissectorField", ["fullname", "name", "type", "base", "enum_table"])
 
 proto_names = { 1: 'of10', 2: 'of11', 3: 'of12', 4: 'of13' }
 def make_field_name(wire_version, ofclass_name, member_name):
@@ -50,10 +50,14 @@
     Returns (type, base)
     """
     if oftype.startswith("list"):
-        return "bytes", "NONE"
+        return "bytes", "NONE", "nil"
 
     ofproto = of_g.ir[version]
+
     enum = ofproto.enum_by_name(oftype)
+    if not enum and (cls, name) in field_info.class_field_to_enum:
+        enum_name = field_info.class_field_to_enum[(cls, name)]
+        enum = ofproto.enum_by_name(enum_name)
 
     if enum:
         field_type = "uint32"
@@ -76,7 +80,12 @@
         print "WARN missing oftype_to_base for", oftype
         field_base = "NONE"
 
-    return field_type, field_base
+    if enum:
+        enum_table = 'enum_v%d_%s' % (version, enum.name)
+    else:
+        enum_table = 'nil'
+
+    return field_type, field_base, enum_table
 
 def create_fields():
     r = []
@@ -86,39 +95,13 @@
                 if isinstance(m, OFPadMember):
                     continue
                 fullname = make_field_name(wire_version, ofclass.name, m.name)
-                field_type, field_base = get_field_info(wire_version, ofclass.name, m.name, m.oftype)
-                r.append(DissectorField(fullname, m.name, field_type, field_base))
+                field_type, field_base, enum_table = get_field_info(wire_version, ofclass.name, m.name, m.oftype)
+                r.append(DissectorField(fullname, m.name, field_type, field_base, enum_table))
 
     return r
 
-enum_tables = {
-    'of13.flow_mod.type': 'enum_v4_ofp_type',
-    'of13.error_msg.type': 'enum_v4_ofp_type',
-    'of13.stats_request.type': 'enum_v4_ofp_type',
-    'of13.stats_request.stats_type': 'enum_v4_ofp_stats_type',
-    'of13.stats_request.flags': 'enum_v4_ofp_stats_request_flags',
-    'of13.stats_reply.type': 'enum_v4_ofp_type',
-    'of13.stats_reply.stats_type': 'enum_v4_ofp_stats_type',
-    'of13.stats_reply.flags': 'enum_v4_ofp_stats_reply_flags',
-    'of13.flow_mod.table_id': 'enum_v4_ofp_table',
-    'of13.flow_mod._command': 'enum_v4_ofp_flow_mod_command',
-    'of13.flow_mod.out_port': 'enum_v4_ofp_port',
-    'of13.flow_mod.out_group': 'enum_v4_ofp_group',
-    'of13.error_msg.err_type': 'enum_v4_ofp_error_type',
-    'of13.port_mod.type': 'enum_v4_ofp_type',
-    'of13.hello.type': 'enum_v4_ofp_type',
-    'of13.features_request.type': 'enum_v4_ofp_type',
-    'of13.features_reply.type': 'enum_v4_ofp_type',
-    'of13.barrier_request.type': 'enum_v4_ofp_type',
-    'of13.barrier_reply.type': 'enum_v4_ofp_type',
-    'of13.echo_request.type': 'enum_v4_ofp_type',
-    'of13.echo_reply.type': 'enum_v4_ofp_type',
-    'of13.match_t.type': 'enum_v4_ofp_match_type'
-}
-
 def generate(out, name):
     context = {
         'fields': create_fields(),
-        'enum_tables': enum_tables,
     }
     utils.render_template(out, "openflow.lua", [templates_dir], context)
diff --git a/wireshark_gen/field_info.py b/wireshark_gen/field_info.py
index 167ff32..2809c2a 100644
--- a/wireshark_gen/field_info.py
+++ b/wireshark_gen/field_info.py
@@ -81,6 +81,32 @@
     "of_bitmap_128_t": "NONE",
 }
 
+# Use enums for certain fields where it isn't specified in the LOXI input
+class_field_to_enum = {
+    ('of_flow_mod', 'type'): 'ofp_type',
+    ('of_error_msg', 'type'): 'ofp_type',
+    ('of_stats_request', 'type'): 'ofp_type',
+    ('of_stats_request', 'stats_type'): 'ofp_stats_type',
+    ('of_stats_request', 'flags'): 'ofp_stats_request_flags',
+    ('of_stats_reply', 'type'): 'ofp_type',
+    ('of_stats_reply', 'stats_type'): 'ofp_stats_type',
+    ('of_stats_reply', 'flags'): 'ofp_stats_reply_flags',
+    ('of_flow_mod', 'table_id'): 'ofp_table',
+    ('of_flow_mod', '_command'): 'ofp_flow_mod_command',
+    ('of_flow_mod', 'out_port'): 'ofp_port',
+    ('of_flow_mod', 'out_group'): 'ofp_group',
+    ('of_error_msg', 'err_type'): 'ofp_error_type',
+    ('of_port_mod', 'type'): 'ofp_type',
+    ('of_hello', 'type'): 'ofp_type',
+    ('of_features_request', 'type'): 'ofp_type',
+    ('of_features_reply', 'type'): 'ofp_type',
+    ('of_barrier_request', 'type'): 'ofp_type',
+    ('of_barrier_reply', 'type'): 'ofp_type',
+    ('of_echo_request', 'type'): 'ofp_type',
+    ('of_echo_reply', 'type'): 'ofp_type',
+    ('of_match_v3', 'type'): 'ofp_match_type'
+}
+
 # Override oftype_to_base for certain field names
 field_to_base = {
     "eth_type": "HEX",
diff --git a/wireshark_gen/templates/openflow.lua b/wireshark_gen/templates/openflow.lua
index c8e7185..5ab11cd 100644
--- a/wireshark_gen/templates/openflow.lua
+++ b/wireshark_gen/templates/openflow.lua
@@ -57,7 +57,7 @@
 fields = {}
 :: for field in fields:
 :: if field.type in ["uint8", "uint16", "uint32", "uint64"]:
-fields[${repr(field.fullname)}] = ProtoField.${field.type}("${field.fullname}", "${field.name}", base.${field.base}, ${enum_tables.get(field.fullname, 'nil')})
+fields[${repr(field.fullname)}] = ProtoField.${field.type}("${field.fullname}", "${field.name}", base.${field.base}, ${field.enum_table})
 :: elif field.type in ["ipv4", "ipv6", "ether", "bytes", "stringz"]:
 fields[${repr(field.fullname)}] = ProtoField.${field.type}("${field.fullname}", "${field.name}")
 :: else:
