diff --git a/java_gen/templates/const_set_serializer.java b/java_gen/templates/const_set_serializer.java
index ad0adb1..4fcff22 100644
--- a/java_gen/templates/const_set_serializer.java
+++ b/java_gen/templates/const_set_serializer.java
@@ -46,9 +46,9 @@
 public class ${class_name} {
     //:: wire_type = enum.wire_type(version)
     //:: int_wire_type = enum.wire_type(version).pub_type
-    //:: entries = sorted([ (entry, entry.value(version)) for entry in enum.entries if entry.has_value(version) ], lambda (_,va), (_2,vb): va.__cmp__(vb))
+    //:: entries = [entry for entry in enum.entries if entry.has_value(version) ]
 
-    //:: for entry, _ in entries:
+    //:: for entry in entries:
     public final static ${int_wire_type} ${entry.name}_VAL = ${entry.format_value(version)};
     //:: #endfor
 
@@ -67,9 +67,21 @@
     public static Set<${enum.name}> ofWireValue(${int_wire_type} val) {
         EnumSet<${enum.name}> set = EnumSet.noneOf(${enum.name}.class);
 
-        //:: for entry, _ in entries:
+        //:: last_group = None
+        //:: for entry in entries:
+        //::    if entry.is_mask:
+        //::        continue
+        //::    #endif
+        //::    group = entry.masked_enum_group
+        //::    if group:
+        ${"else " if group == last_group else "" }if((val & ${group.mask}_VAL) == ${entry.name}_VAL)
+            set.add(${enum.name}.${entry.name});
+        //::       last_group = group
+        //::    else:
         if((val & ${entry.name}_VAL) != 0)
             set.add(${enum.name}.${entry.name});
+        //::       last_group = None
+        //::    #endif
         //:: #endfor
         return Collections.unmodifiableSet(set);
     }
@@ -79,7 +91,10 @@
 
         for(${enum.name} e: set) {
             switch(e) {
-                //:: for entry, _ in entries:
+                //:: for entry in entries:
+                //::    if entry.is_mask:
+                //::        continue
+                //::    #endif
                 case ${entry.name}:
                     wireValue |= ${entry.name}_VAL;
                     break;
