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':
diff --git a/loxi_front_end/parser.py b/loxi_front_end/parser.py
index d5920e8..25bfde4 100644
--- a/loxi_front_end/parser.py
+++ b/loxi_front_end/parser.py
@@ -51,6 +51,7 @@
 
 # Structs
 pad_member = P.Group(kw('pad') - s('(') - integer - s(')'))
+discriminator_member = P.Group(tag('discriminator') + any_type + identifier + s('==') + s('?'))
 type_member = P.Group(tag('type') + any_type + identifier + s('==') + integer)
 data_member = P.Group(tag('data') + any_type - identifier)
 
@@ -59,7 +60,7 @@
 struct_param_list = P.Forward()
 struct_param_list << struct_param + P.Optional(s(',') - P.Optional(struct_param_list))
 
-struct_member = pad_member | type_member | data_member;
+struct_member = pad_member | type_member | discriminator_member | data_member;
 parent = (s(':') - identifier) | tag(None)
 struct = kw('struct') - identifier - P.Group(P.Optional(s('(') - struct_param_list - s(')'))) - parent - s('{') + \
          P.Group(P.ZeroOrMore(struct_member - s(';'))) + \
