Generate ENUMTYPE macros for enums instead of MSGTYPE macros.
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py
index c9fc4cf..77036b2 100755
--- a/generator/nanopb_generator.py
+++ b/generator/nanopb_generator.py
@@ -1422,7 +1422,7 @@
             result += '#define %s_DEFAULT NULL\n' % Globals.naming_style.define_name(self.name)
 
         for field in sorted_fields:
-            if field.pbtype in ['MESSAGE', 'MSG_W_CB', "UENUM"]:
+            if field.pbtype in ['MESSAGE', 'MSG_W_CB']:
                 if field.rules == 'ONEOF':
                     result += "#define %s_%s_%s_MSGTYPE %s\n" % (
                         Globals.naming_style.type_name(self.name),
@@ -1437,6 +1437,21 @@
                         Globals.naming_style.type_name(field.ctype)
                     )
 
+            if field.pbtype in ['ENUM', "UENUM"]:
+                if field.rules == 'ONEOF':
+                    result += "#define %s_%s_%s_ENUMTYPE %s\n" % (
+                        Globals.naming_style.type_name(self.name),
+                        Globals.naming_style.var_name(field.union_name),
+                        Globals.naming_style.var_name(field.name),
+                        Globals.naming_style.type_name(field.ctype)
+                    )
+                else:
+                    result += "#define %s_%s_ENUMTYPE %s\n" % (
+                        Globals.naming_style.type_name(self.name),
+                        Globals.naming_style.var_name(field.name),
+                        Globals.naming_style.type_name(field.ctype)
+                    )
+
         return result
 
     def fields_declaration_cpp_lookup(self):