diff --git a/Google.Protobuf/IMessage.vb b/Google.Protobuf/IMessage.vb
index 75a07a2..eb3f0b3 100644
--- a/Google.Protobuf/IMessage.vb
+++ b/Google.Protobuf/IMessage.vb
@@ -67,19 +67,4 @@ Namespace Google.Protobuf
ReadOnly Property Descriptor As MessageDescriptor
End Interface
- '''
- ''' Generic interface for a Protocol Buffers message,
- ''' where the type parameter is expected to be the same type as
- ''' the implementation class.
- '''
- ''' The message type.
- Public Interface IMessageType(Of T As IMessageType(Of T))
- Inherits IMessage, IEquatable(Of T), IDeepCloneable(Of T)
- '''
- ''' Merges the given message into this one.
- '''
- ''' See the user guide for precise merge semantics.
- ''' The message to merge with this one. Must not be null.
- Overloads Sub MergeFrom(message As T)
- End Interface
End Namespace
diff --git a/Google.Protobuf/IMessageType.vb b/Google.Protobuf/IMessageType.vb
new file mode 100644
index 0000000..74ea314
--- /dev/null
+++ b/Google.Protobuf/IMessageType.vb
@@ -0,0 +1,18 @@
+Namespace Google.Protobuf
+
+ '''
+ ''' Generic interface for a Protocol Buffers message,
+ ''' where the type parameter is expected to be the same type as
+ ''' the implementation class.
+ '''
+ ''' The message type.
+ Public Interface IMessageType(Of T As IMessageType(Of T))
+ Inherits IMessage, IEquatable(Of T), IDeepCloneable(Of T)
+ '''
+ ''' Merges the given message into this one.
+ '''
+ ''' See the user guide for precise merge semantics.
+ ''' The message to merge with this one. Must not be null.
+ Overloads Sub MergeFrom(message As T)
+ End Interface
+End Namespace
\ No newline at end of file