diff --git a/CHANGELOG.md b/CHANGELOG.md
index b605451..5e8dc0e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.10.2
+
+* Added ProtobufEnum reserved names.
+
 ## 0.10.1
 
 * Added Support for [any](https://developers.google.com/protocol-buffers/docs/proto3#any) messages.
diff --git a/lib/meta.dart b/lib/meta.dart
index 8ee607b..0e062ed 100644
--- a/lib/meta.dart
+++ b/lib/meta.dart
@@ -2,12 +2,12 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-/// Provides metadata about GeneratedMessage to dart-protoc-plugin.
-/// (Experimental API; subject to change.)
+/// Provides metadata about GeneratedMessage and ProtobufEnum to
+/// dart-protoc-plugin. (Experimental API; subject to change.)
 library protobuf.meta;
 
 // List of names which cannot be used in a subclass of GeneratedMessage.
-const List<String> GeneratedMessage_reservedNames = const [
+const GeneratedMessage_reservedNames = const <String>[
   'hashCode',
   'noSuchMethod',
   'copyWith',
@@ -68,3 +68,15 @@
   'toBuilder',
   'toDebugString',
 ];
+
+// List of names which cannot be used in a subclass of ProtobufEnum.
+const ProtobufEnum_reservedNames = const <String>[
+  '==',
+  'Object',
+  'ProtobufEnum',
+  'hashCode',
+  'initByValue',
+  'noSuchMethod',
+  'runtimeType',
+  'toString'
+];
diff --git a/pubspec.yaml b/pubspec.yaml
index fb08c89..aa6088a 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: protobuf
-version: 0.10.1
+version: 0.10.2
 author: Dart Team <misc@dartlang.org>
 description: Runtime library for protocol buffers support.
 homepage: https://github.com/dart-lang/protobuf
diff --git a/test/reserved_names_test.dart b/test/reserved_names_test.dart
index 565b392..0b7cc8a 100755
--- a/test/reserved_names_test.dart
+++ b/test/reserved_names_test.dart
@@ -8,14 +8,15 @@
 
 import 'package:test/test.dart';
 
-import 'package:protobuf/meta.dart' show GeneratedMessage_reservedNames;
+import 'package:protobuf/meta.dart'
+    show GeneratedMessage_reservedNames, ProtobufEnum_reservedNames;
 import 'package:protobuf/mixins_meta.dart' show findMixin;
 
 import 'mirror_util.dart' show findMemberNames;
 
 // Import the libraries we will access via the mirrors.
 // ignore_for_file: unused_import
-import 'package:protobuf/protobuf.dart' show GeneratedMessage;
+import 'package:protobuf/protobuf.dart' show GeneratedMessage, ProtobufEnum;
 import 'package:protobuf/src/protobuf/mixins/event_mixin.dart'
     show PbEventMixin;
 import 'package:protobuf/src/protobuf/mixins/map_mixin.dart' show PbMapMixin;
@@ -32,6 +33,14 @@
     expect(actual.toList()..sort(), equals(expected.toList()..sort()));
   });
 
+  test('ProtobufEnum reserved names are up to date', () {
+    var actual = new Set<String>.from(ProtobufEnum_reservedNames);
+    var expected =
+        findMemberNames('package:protobuf/protobuf.dart', #ProtobufEnum);
+
+    expect(actual.toList()..sort(), equals(expected.toList()..sort()));
+  });
+
   test("ReadonlyMessageMixin doesn't add any reserved names", () {
     var mixinNames = findMemberNames(
         'package:protobuf/protobuf.dart', #ReadonlyMessageMixin);
