diff --git a/loxi_front_end/frontend.py b/loxi_front_end/frontend.py
index bba941c..70699e0 100644
--- a/loxi_front_end/frontend.py
+++ b/loxi_front_end/frontend.py
@@ -46,6 +46,8 @@
             return OFFieldLengthMember(name=m_ast[2], oftype=m_ast[1], field_name='actions')
         else:
             return OFDataMember(name=m_ast[2], oftype=m_ast[1])
+    elif m_ast[0] == 'discriminator':
+        return OFDiscriminatorMember(name=m_ast[2], oftype=m_ast[1])
     else:
         raise Exception("Dont know how to create member: %s" % m_ast[0])
 
@@ -65,11 +67,17 @@
             # 0: "enum"
             # 1: name
             # 2: potentially list of [param_name, param_value]
-            # 3: super_class
+            # 3: super_class or None
             # 4: list of [constant_name, constant_value]+
-            super_class = decl_ast[3]
+            superclass = decl_ast[3]
             members = [create_member(m_ast) for m_ast in decl_ast[4]]
-            ofclass = OFClass(name=decl_ast[1], members=members, super_class=super_class,
+
+            discriminators = [ m for m in members if isinstance(m, OFDiscriminatorMember) ]
+            if len(discriminators) > 1:
+                raise Exception("%s: Cannot support more than one discriminator by class - got %s" %
+                        (decl_ast[1], repr(discriminators)))
+            ofclass = OFClass(name=decl_ast[1], members=members, superclass=superclass,
+                    virtual = len(discriminators) > 0,
                     params = { param: value for param, value in decl_ast[2] })
             ofinput.classes.append(ofclass)
         if decl_ast[0] == 'enum':
