diff --git a/_conformance/conformance_proto/conformance.pb.go b/_conformance/conformance_proto/conformance.pb.go
index 8c1e3ca..cad3622 100644
--- a/_conformance/conformance_proto/conformance.pb.go
+++ b/_conformance/conformance_proto/conformance.pb.go
@@ -243,11 +243,11 @@
 	// payload
 	switch x := m.Payload.(type) {
 	case *ConformanceRequest_ProtobufPayload:
-		n += proto.SizeVarint(1<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.ProtobufPayload)))
 		n += len(x.ProtobufPayload)
 	case *ConformanceRequest_JsonPayload:
-		n += proto.SizeVarint(2<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.JsonPayload)))
 		n += len(x.JsonPayload)
 	case nil:
@@ -471,27 +471,27 @@
 	// result
 	switch x := m.Result.(type) {
 	case *ConformanceResponse_ParseError:
-		n += proto.SizeVarint(1<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.ParseError)))
 		n += len(x.ParseError)
 	case *ConformanceResponse_SerializeError:
-		n += proto.SizeVarint(6<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.SerializeError)))
 		n += len(x.SerializeError)
 	case *ConformanceResponse_RuntimeError:
-		n += proto.SizeVarint(2<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.RuntimeError)))
 		n += len(x.RuntimeError)
 	case *ConformanceResponse_ProtobufPayload:
-		n += proto.SizeVarint(3<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.ProtobufPayload)))
 		n += len(x.ProtobufPayload)
 	case *ConformanceResponse_JsonPayload:
-		n += proto.SizeVarint(4<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.JsonPayload)))
 		n += len(x.JsonPayload)
 	case *ConformanceResponse_Skipped:
-		n += proto.SizeVarint(5<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.Skipped)))
 		n += len(x.Skipped)
 	case nil:
@@ -1678,35 +1678,35 @@
 	// oneof_field
 	switch x := m.OneofField.(type) {
 	case *TestAllTypes_OneofUint32:
-		n += proto.SizeVarint(111<<3 | proto.WireVarint)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(x.OneofUint32))
 	case *TestAllTypes_OneofNestedMessage:
 		s := proto.Size(x.OneofNestedMessage)
-		n += proto.SizeVarint(112<<3 | proto.WireBytes)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(s))
 		n += s
 	case *TestAllTypes_OneofString:
-		n += proto.SizeVarint(113<<3 | proto.WireBytes)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.OneofString)))
 		n += len(x.OneofString)
 	case *TestAllTypes_OneofBytes:
-		n += proto.SizeVarint(114<<3 | proto.WireBytes)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.OneofBytes)))
 		n += len(x.OneofBytes)
 	case *TestAllTypes_OneofBool:
-		n += proto.SizeVarint(115<<3 | proto.WireVarint)
+		n += 2 // tag and wire
 		n += 1
 	case *TestAllTypes_OneofUint64:
-		n += proto.SizeVarint(116<<3 | proto.WireVarint)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(x.OneofUint64))
 	case *TestAllTypes_OneofFloat:
-		n += proto.SizeVarint(117<<3 | proto.WireFixed32)
+		n += 2 // tag and wire
 		n += 4
 	case *TestAllTypes_OneofDouble:
-		n += proto.SizeVarint(118<<3 | proto.WireFixed64)
+		n += 2 // tag and wire
 		n += 8
 	case *TestAllTypes_OneofEnum:
-		n += proto.SizeVarint(119<<3 | proto.WireVarint)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(x.OneofEnum))
 	case nil:
 	default:
diff --git a/jsonpb/jsonpb_test_proto/test_objects.pb.go b/jsonpb/jsonpb_test_proto/test_objects.pb.go
index 5809d01..77ae78a 100644
--- a/jsonpb/jsonpb_test_proto/test_objects.pb.go
+++ b/jsonpb/jsonpb_test_proto/test_objects.pb.go
@@ -697,23 +697,23 @@
 	// union
 	switch x := m.Union.(type) {
 	case *MsgWithOneof_Title:
-		n += proto.SizeVarint(1<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.Title)))
 		n += len(x.Title)
 	case *MsgWithOneof_Salary:
-		n += proto.SizeVarint(2<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.Salary))
 	case *MsgWithOneof_Country:
-		n += proto.SizeVarint(3<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.Country)))
 		n += len(x.Country)
 	case *MsgWithOneof_HomeAddress:
-		n += proto.SizeVarint(4<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.HomeAddress)))
 		n += len(x.HomeAddress)
 	case *MsgWithOneof_MsgWithRequired:
 		s := proto.Size(x.MsgWithRequired)
-		n += proto.SizeVarint(5<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(s))
 		n += s
 	case nil:
diff --git a/proto/test_proto/test.pb.go b/proto/test_proto/test.pb.go
index b688612..f8883c3 100644
--- a/proto/test_proto/test.pb.go
+++ b/proto/test_proto/test.pb.go
@@ -3545,60 +3545,60 @@
 	// union
 	switch x := m.Union.(type) {
 	case *Oneof_F_Bool:
-		n += proto.SizeVarint(1<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += 1
 	case *Oneof_F_Int32:
-		n += proto.SizeVarint(2<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.F_Int32))
 	case *Oneof_F_Int64:
-		n += proto.SizeVarint(3<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.F_Int64))
 	case *Oneof_F_Fixed32:
-		n += proto.SizeVarint(4<<3 | proto.WireFixed32)
+		n += 1 // tag and wire
 		n += 4
 	case *Oneof_F_Fixed64:
-		n += proto.SizeVarint(5<<3 | proto.WireFixed64)
+		n += 1 // tag and wire
 		n += 8
 	case *Oneof_F_Uint32:
-		n += proto.SizeVarint(6<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.F_Uint32))
 	case *Oneof_F_Uint64:
-		n += proto.SizeVarint(7<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.F_Uint64))
 	case *Oneof_F_Float:
-		n += proto.SizeVarint(8<<3 | proto.WireFixed32)
+		n += 1 // tag and wire
 		n += 4
 	case *Oneof_F_Double:
-		n += proto.SizeVarint(9<<3 | proto.WireFixed64)
+		n += 1 // tag and wire
 		n += 8
 	case *Oneof_F_String:
-		n += proto.SizeVarint(10<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.F_String)))
 		n += len(x.F_String)
 	case *Oneof_F_Bytes:
-		n += proto.SizeVarint(11<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.F_Bytes)))
 		n += len(x.F_Bytes)
 	case *Oneof_F_Sint32:
-		n += proto.SizeVarint(12<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64((uint32(x.F_Sint32) << 1) ^ uint32((int32(x.F_Sint32) >> 31))))
 	case *Oneof_F_Sint64:
-		n += proto.SizeVarint(13<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(uint64(x.F_Sint64<<1) ^ uint64((int64(x.F_Sint64) >> 63))))
 	case *Oneof_F_Enum:
-		n += proto.SizeVarint(14<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.F_Enum))
 	case *Oneof_F_Message:
 		s := proto.Size(x.F_Message)
-		n += proto.SizeVarint(15<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(s))
 		n += s
 	case *Oneof_FGroup:
-		n += proto.SizeVarint(16<<3 | proto.WireStartGroup)
+		n += 2 // tag and wire
 		n += proto.Size(x.FGroup)
-		n += proto.SizeVarint(16<<3 | proto.WireEndGroup)
+		n += 2 // tag and wire
 	case *Oneof_F_Largest_Tag:
-		n += proto.SizeVarint(536870911<<3 | proto.WireVarint)
+		n += 10 // tag and wire
 		n += proto.SizeVarint(uint64(x.F_Largest_Tag))
 	case nil:
 	default:
@@ -3607,7 +3607,7 @@
 	// tormato
 	switch x := m.Tormato.(type) {
 	case *Oneof_Value:
-		n += proto.SizeVarint(100<<3 | proto.WireVarint)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(x.Value))
 	case nil:
 	default:
@@ -3880,25 +3880,25 @@
 	// union
 	switch x := m.Union.(type) {
 	case *Communique_Number:
-		n += proto.SizeVarint(5<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.Number))
 	case *Communique_Name:
-		n += proto.SizeVarint(6<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.Name)))
 		n += len(x.Name)
 	case *Communique_Data:
-		n += proto.SizeVarint(7<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.Data)))
 		n += len(x.Data)
 	case *Communique_TempC:
-		n += proto.SizeVarint(8<<3 | proto.WireFixed64)
+		n += 1 // tag and wire
 		n += 8
 	case *Communique_Col:
-		n += proto.SizeVarint(9<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.Col))
 	case *Communique_Msg:
 		s := proto.Size(x.Msg)
-		n += proto.SizeVarint(10<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(s))
 		n += s
 	case nil:
diff --git a/protoc-gen-go/generator/generator.go b/protoc-gen-go/generator/generator.go
index d8e512e..6e1b72c 100644
--- a/protoc-gen-go/generator/generator.go
+++ b/protoc-gen-go/generator/generator.go
@@ -2624,58 +2624,49 @@
 				}
 				g.P("case *", oneofTypeName[field], ":")
 				val := "x." + fieldNames[field]
-				var wire, varint, fixed string
+				var varint, fixed string
 				switch *field.Type {
 				case descriptor.FieldDescriptorProto_TYPE_DOUBLE:
-					wire = "WireFixed64"
 					fixed = "8"
 				case descriptor.FieldDescriptorProto_TYPE_FLOAT:
-					wire = "WireFixed32"
 					fixed = "4"
 				case descriptor.FieldDescriptorProto_TYPE_INT64,
 					descriptor.FieldDescriptorProto_TYPE_UINT64,
 					descriptor.FieldDescriptorProto_TYPE_INT32,
 					descriptor.FieldDescriptorProto_TYPE_UINT32,
 					descriptor.FieldDescriptorProto_TYPE_ENUM:
-					wire = "WireVarint"
 					varint = val
 				case descriptor.FieldDescriptorProto_TYPE_FIXED64,
 					descriptor.FieldDescriptorProto_TYPE_SFIXED64:
-					wire = "WireFixed64"
 					fixed = "8"
 				case descriptor.FieldDescriptorProto_TYPE_FIXED32,
 					descriptor.FieldDescriptorProto_TYPE_SFIXED32:
-					wire = "WireFixed32"
 					fixed = "4"
 				case descriptor.FieldDescriptorProto_TYPE_BOOL:
-					wire = "WireVarint"
 					fixed = "1"
 				case descriptor.FieldDescriptorProto_TYPE_STRING:
-					wire = "WireBytes"
 					fixed = "len(" + val + ")"
 					varint = fixed
 				case descriptor.FieldDescriptorProto_TYPE_GROUP:
-					wire = "WireStartGroup"
 					fixed = g.Pkg["proto"] + ".Size(" + val + ")"
 				case descriptor.FieldDescriptorProto_TYPE_MESSAGE:
-					wire = "WireBytes"
 					g.P("s := ", g.Pkg["proto"], ".Size(", val, ")")
 					fixed = "s"
 					varint = fixed
 				case descriptor.FieldDescriptorProto_TYPE_BYTES:
-					wire = "WireBytes"
 					fixed = "len(" + val + ")"
 					varint = fixed
 				case descriptor.FieldDescriptorProto_TYPE_SINT32:
-					wire = "WireVarint"
 					varint = "(uint32(" + val + ") << 1) ^ uint32((int32(" + val + ") >> 31))"
 				case descriptor.FieldDescriptorProto_TYPE_SINT64:
-					wire = "WireVarint"
 					varint = "uint64(" + val + " << 1) ^ uint64((int64(" + val + ") >> 63))"
 				default:
 					g.Fail("unhandled oneof field type ", field.Type.String())
 				}
-				g.P("n += ", g.Pkg["proto"], ".SizeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".", wire, ")")
+				// Tag and wire varint is known statically,
+				// so don't generate code for that part of the size computation.
+				tagAndWireSize := proto.SizeVarint(uint64(*field.Number << 3)) // wire doesn't affect varint size
+				g.P("n += ", tagAndWireSize, " // tag and wire")
 				if varint != "" {
 					g.P("n += ", g.Pkg["proto"], ".SizeVarint(uint64(", varint, "))")
 				}
@@ -2683,7 +2674,7 @@
 					g.P("n += ", fixed)
 				}
 				if *field.Type == descriptor.FieldDescriptorProto_TYPE_GROUP {
-					g.P("n += ", g.Pkg["proto"], ".SizeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".WireEndGroup)")
+					g.P("n += ", tagAndWireSize, " // tag and wire")
 				}
 			}
 			g.P("case nil:")
diff --git a/protoc-gen-go/testdata/imp/imp.pb.go b/protoc-gen-go/testdata/imp/imp.pb.go
index 750f6a1..b781ae2 100644
--- a/protoc-gen-go/testdata/imp/imp.pb.go
+++ b/protoc-gen-go/testdata/imp/imp.pb.go
@@ -226,7 +226,7 @@
 	// union
 	switch x := m.Union.(type) {
 	case *ImportedMessage_State:
-		n += proto.SizeVarint(9<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.State))
 	case nil:
 	default:
diff --git a/protoc-gen-go/testdata/my_test/test.pb.go b/protoc-gen-go/testdata/my_test/test.pb.go
index 0fe65e2..bad905e 100644
--- a/protoc-gen-go/testdata/my_test/test.pb.go
+++ b/protoc-gen-go/testdata/my_test/test.pb.go
@@ -57,7 +57,7 @@
 	return nil
 }
 func (HatType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{0}
+	return fileDescriptor_test_2309d445eee26af7, []int{0}
 }
 
 // This enum represents days of the week.
@@ -97,7 +97,7 @@
 	return nil
 }
 func (Days) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{1}
+	return fileDescriptor_test_2309d445eee26af7, []int{1}
 }
 
 type Request_Color int32
@@ -136,7 +136,7 @@
 	return nil
 }
 func (Request_Color) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{0, 0}
+	return fileDescriptor_test_2309d445eee26af7, []int{0, 0}
 }
 
 type Reply_Entry_Game int32
@@ -172,7 +172,7 @@
 	return nil
 }
 func (Reply_Entry_Game) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{1, 0, 0}
+	return fileDescriptor_test_2309d445eee26af7, []int{1, 0, 0}
 }
 
 // This is a message that might be sent somewhere.
@@ -200,7 +200,7 @@
 func (m *Request) String() string { return proto.CompactTextString(m) }
 func (*Request) ProtoMessage()    {}
 func (*Request) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{0}
+	return fileDescriptor_test_2309d445eee26af7, []int{0}
 }
 func (m *Request) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Request.Unmarshal(m, b)
@@ -298,7 +298,7 @@
 func (m *Request_SomeGroup) String() string { return proto.CompactTextString(m) }
 func (*Request_SomeGroup) ProtoMessage()    {}
 func (*Request_SomeGroup) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{0, 0}
+	return fileDescriptor_test_2309d445eee26af7, []int{0, 0}
 }
 func (m *Request_SomeGroup) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Request_SomeGroup.Unmarshal(m, b)
@@ -338,7 +338,7 @@
 func (m *Reply) String() string { return proto.CompactTextString(m) }
 func (*Reply) ProtoMessage()    {}
 func (*Reply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{1}
+	return fileDescriptor_test_2309d445eee26af7, []int{1}
 }
 
 var extRange_Reply = []proto.ExtensionRange{
@@ -393,7 +393,7 @@
 func (m *Reply_Entry) String() string { return proto.CompactTextString(m) }
 func (*Reply_Entry) ProtoMessage()    {}
 func (*Reply_Entry) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{1, 0}
+	return fileDescriptor_test_2309d445eee26af7, []int{1, 0}
 }
 func (m *Reply_Entry) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Reply_Entry.Unmarshal(m, b)
@@ -448,7 +448,7 @@
 func (m *OtherBase) String() string { return proto.CompactTextString(m) }
 func (*OtherBase) ProtoMessage()    {}
 func (*OtherBase) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{2}
+	return fileDescriptor_test_2309d445eee26af7, []int{2}
 }
 
 var extRange_OtherBase = []proto.ExtensionRange{
@@ -493,7 +493,7 @@
 func (m *ReplyExtensions) String() string { return proto.CompactTextString(m) }
 func (*ReplyExtensions) ProtoMessage()    {}
 func (*ReplyExtensions) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{3}
+	return fileDescriptor_test_2309d445eee26af7, []int{3}
 }
 func (m *ReplyExtensions) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_ReplyExtensions.Unmarshal(m, b)
@@ -551,7 +551,7 @@
 func (m *OtherReplyExtensions) String() string { return proto.CompactTextString(m) }
 func (*OtherReplyExtensions) ProtoMessage()    {}
 func (*OtherReplyExtensions) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{4}
+	return fileDescriptor_test_2309d445eee26af7, []int{4}
 }
 func (m *OtherReplyExtensions) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_OtherReplyExtensions.Unmarshal(m, b)
@@ -589,7 +589,7 @@
 func (m *OldReply) String() string { return proto.CompactTextString(m) }
 func (*OldReply) ProtoMessage()    {}
 func (*OldReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{5}
+	return fileDescriptor_test_2309d445eee26af7, []int{5}
 }
 
 func (m *OldReply) MarshalJSON() ([]byte, error) {
@@ -649,7 +649,7 @@
 func (m *Communique) String() string { return proto.CompactTextString(m) }
 func (*Communique) ProtoMessage()    {}
 func (*Communique) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{6}
+	return fileDescriptor_test_2309d445eee26af7, []int{6}
 }
 func (m *Communique) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Communique.Unmarshal(m, b)
@@ -698,7 +698,7 @@
 	Delta int32 `protobuf:"zigzag32,12,opt,name=delta,oneof"`
 }
 type Communique_Msg struct {
-	Msg *Reply `protobuf:"bytes,13,opt,name=msg,oneof"`
+	Msg *Reply `protobuf:"bytes,16,opt,name=msg,oneof"`
 }
 type Communique_Somegroup struct {
 	Somegroup *Communique_SomeGroup `protobuf:"group,14,opt,name=SomeGroup,json=somegroup,oneof"`
@@ -848,7 +848,7 @@
 		b.EncodeVarint(12<<3 | proto.WireVarint)
 		b.EncodeZigzag32(uint64(x.Delta))
 	case *Communique_Msg:
-		b.EncodeVarint(13<<3 | proto.WireBytes)
+		b.EncodeVarint(16<<3 | proto.WireBytes)
 		if err := b.EncodeMessage(x.Msg); err != nil {
 			return err
 		}
@@ -924,7 +924,7 @@
 		x, err := b.DecodeZigzag32()
 		m.Union = &Communique_Delta_{int32(x)}
 		return true, err
-	case 13: // union.msg
+	case 16: // union.msg
 		if wire != proto.WireBytes {
 			return true, proto.ErrInternalBadWireType
 		}
@@ -950,40 +950,40 @@
 	// union
 	switch x := m.Union.(type) {
 	case *Communique_Number:
-		n += proto.SizeVarint(5<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.Number))
 	case *Communique_Name:
-		n += proto.SizeVarint(6<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.Name)))
 		n += len(x.Name)
 	case *Communique_Data:
-		n += proto.SizeVarint(7<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.Data)))
 		n += len(x.Data)
 	case *Communique_TempC:
-		n += proto.SizeVarint(8<<3 | proto.WireFixed64)
+		n += 1 // tag and wire
 		n += 8
 	case *Communique_Height:
-		n += proto.SizeVarint(9<<3 | proto.WireFixed32)
+		n += 1 // tag and wire
 		n += 4
 	case *Communique_Today:
-		n += proto.SizeVarint(10<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.Today))
 	case *Communique_Maybe:
-		n += proto.SizeVarint(11<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += 1
 	case *Communique_Delta_:
-		n += proto.SizeVarint(12<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64((uint32(x.Delta) << 1) ^ uint32((int32(x.Delta) >> 31))))
 	case *Communique_Msg:
 		s := proto.Size(x.Msg)
-		n += proto.SizeVarint(13<<3 | proto.WireBytes)
+		n += 2 // tag and wire
 		n += proto.SizeVarint(uint64(s))
 		n += s
 	case *Communique_Somegroup:
-		n += proto.SizeVarint(14<<3 | proto.WireStartGroup)
+		n += 1 // tag and wire
 		n += proto.Size(x.Somegroup)
-		n += proto.SizeVarint(14<<3 | proto.WireEndGroup)
+		n += 1 // tag and wire
 	case nil:
 	default:
 		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
@@ -1002,7 +1002,7 @@
 func (m *Communique_SomeGroup) String() string { return proto.CompactTextString(m) }
 func (*Communique_SomeGroup) ProtoMessage()    {}
 func (*Communique_SomeGroup) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{6, 0}
+	return fileDescriptor_test_2309d445eee26af7, []int{6, 0}
 }
 func (m *Communique_SomeGroup) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Communique_SomeGroup.Unmarshal(m, b)
@@ -1039,7 +1039,7 @@
 func (m *Communique_Delta) String() string { return proto.CompactTextString(m) }
 func (*Communique_Delta) ProtoMessage()    {}
 func (*Communique_Delta) Descriptor() ([]byte, []int) {
-	return fileDescriptor_test_4c0531be33cf90ba, []int{6, 1}
+	return fileDescriptor_test_2309d445eee26af7, []int{6, 1}
 }
 func (m *Communique_Delta) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Communique_Delta.Unmarshal(m, b)
@@ -1102,73 +1102,73 @@
 	proto.RegisterExtension(E_Donut)
 }
 
-func init() { proto.RegisterFile("my_test/test.proto", fileDescriptor_test_4c0531be33cf90ba) }
+func init() { proto.RegisterFile("my_test/test.proto", fileDescriptor_test_2309d445eee26af7) }
 
-var fileDescriptor_test_4c0531be33cf90ba = []byte{
-	// 1035 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x55, 0xdb, 0x6e, 0xdb, 0x46,
-	0x13, 0xd6, 0x92, 0xa2, 0x0e, 0x23, 0xc5, 0xe6, 0xbf, 0x30, 0x6c, 0x42, 0x3f, 0x12, 0xb3, 0x6a,
-	0x5d, 0xb0, 0x46, 0x23, 0x23, 0x6a, 0x81, 0x06, 0x2a, 0x1a, 0xc4, 0x3a, 0xd8, 0x32, 0x62, 0x49,
-	0xc0, 0xda, 0xbe, 0x68, 0x6e, 0x88, 0xb5, 0xb8, 0xa6, 0x58, 0x6b, 0x49, 0x85, 0x5c, 0x16, 0xe5,
-	0x9d, 0x9f, 0xa2, 0x7d, 0x8d, 0xde, 0xf7, 0x85, 0xfa, 0x16, 0x2e, 0x76, 0xa9, 0x4a, 0xb2, 0x15,
-	0xf4, 0x86, 0xe0, 0xcc, 0x7c, 0xf3, 0x71, 0xe7, 0xc0, 0x6f, 0x01, 0xf3, 0xcc, 0x15, 0x2c, 0x11,
-	0x27, 0xf2, 0xd1, 0x5a, 0xc4, 0x91, 0x88, 0x70, 0x99, 0x67, 0x2d, 0x69, 0x36, 0x30, 0x4f, 0xe7,
-	0x22, 0x38, 0x51, 0xcf, 0x37, 0x79, 0xb0, 0xf9, 0x77, 0x11, 0xca, 0x84, 0x7d, 0x4a, 0x59, 0x22,
-	0xb0, 0x09, 0xfa, 0x3d, 0xcb, 0x2c, 0x64, 0xeb, 0x8e, 0x4e, 0xe4, 0x2b, 0x76, 0x40, 0x9f, 0xa5,
-	0xcc, 0xd2, 0x6d, 0xe4, 0xec, 0xb4, 0xf7, 0x5b, 0x4b, 0xa2, 0xd6, 0x32, 0xa1, 0xd5, 0x8b, 0xe6,
-	0x51, 0x4c, 0x24, 0x04, 0x1f, 0x83, 0x3e, 0xa3, 0xc2, 0x2a, 0x2a, 0xa4, 0xb9, 0x42, 0x0e, 0xa9,
-	0xb8, 0xce, 0x16, 0xac, 0x53, 0x3a, 0x1b, 0xf4, 0x27, 0xe4, 0x94, 0x48, 0x10, 0x3e, 0x84, 0x8a,
-	0xc7, 0xa8, 0x37, 0x0f, 0x42, 0x66, 0x95, 0x6d, 0xe4, 0x68, 0x1d, 0x3d, 0x08, 0xef, 0xc8, 0xca,
-	0x89, 0xdf, 0x42, 0x35, 0x89, 0x38, 0xf3, 0xe3, 0x28, 0x5d, 0x58, 0x15, 0x1b, 0x39, 0xd0, 0x6e,
-	0x6c, 0x7d, 0xfc, 0x2a, 0xe2, 0xec, 0x5c, 0x22, 0xc8, 0x1a, 0x8c, 0xfb, 0x50, 0x0f, 0x29, 0x67,
-	0x2e, 0xa7, 0x8b, 0x45, 0x10, 0xfa, 0xd6, 0x8e, 0xad, 0x3b, 0xb5, 0xf6, 0x17, 0x5b, 0xc9, 0x63,
-	0xca, 0xd9, 0x28, 0xc7, 0x0c, 0x42, 0x11, 0x67, 0xa4, 0x16, 0xae, 0x3d, 0xf8, 0x14, 0x6a, 0x3c,
-	0xf1, 0x57, 0x24, 0xbb, 0x8a, 0xc4, 0xde, 0x22, 0x19, 0x25, 0xfe, 0x13, 0x0e, 0xe0, 0x2b, 0x07,
-	0xde, 0x03, 0x23, 0x66, 0x09, 0x13, 0x56, 0xdd, 0x46, 0x8e, 0x41, 0x72, 0x03, 0x1f, 0x40, 0xd9,
-	0x67, 0xc2, 0x95, 0x5d, 0x36, 0x6d, 0xe4, 0x54, 0x49, 0xc9, 0x67, 0xe2, 0x03, 0xcb, 0x1a, 0xdf,
-	0x42, 0x75, 0x55, 0x0f, 0x3e, 0x84, 0x9a, 0xaa, 0xc6, 0xbd, 0x0b, 0xd8, 0xdc, 0xb3, 0xaa, 0x8a,
-	0x01, 0x94, 0xeb, 0x4c, 0x7a, 0x1a, 0xef, 0xc0, 0x7c, 0x5e, 0xc0, 0x7a, 0x78, 0x12, 0xac, 0x86,
-	0xb7, 0x07, 0xc6, 0xaf, 0x74, 0x9e, 0x32, 0x4b, 0x53, 0x9f, 0xca, 0x8d, 0x8e, 0xf6, 0x16, 0x35,
-	0x46, 0xb0, 0xfb, 0xec, 0xec, 0x9b, 0xe9, 0x38, 0x4f, 0xff, 0x6a, 0x33, 0xbd, 0xd6, 0xde, 0xd9,
-	0x28, 0x7f, 0x31, 0xcf, 0x36, 0xe8, 0x9a, 0x47, 0x60, 0xa8, 0x4d, 0xc0, 0x65, 0xd0, 0xc9, 0xa0,
-	0x6f, 0x16, 0x70, 0x15, 0x8c, 0x73, 0x32, 0x18, 0x8c, 0x4d, 0x84, 0x2b, 0x50, 0xec, 0x5e, 0xde,
-	0x0c, 0x4c, 0xad, 0xf9, 0x87, 0x06, 0x86, 0xca, 0xc5, 0xc7, 0x60, 0xdc, 0x45, 0x69, 0xe8, 0xa9,
-	0x55, 0xab, 0xb5, 0xf7, 0x9e, 0x52, 0xb7, 0xf2, 0x6e, 0xe6, 0x10, 0x7c, 0x04, 0xf5, 0x69, 0xc4,
-	0x17, 0x74, 0xaa, 0xda, 0x96, 0x58, 0x9a, 0xad, 0x3b, 0x46, 0x57, 0x33, 0x11, 0xa9, 0x2d, 0xfd,
-	0x1f, 0x58, 0x96, 0x34, 0xfe, 0x44, 0x60, 0xe4, 0x95, 0xf4, 0xe1, 0xf0, 0x9e, 0x65, 0xae, 0x98,
-	0x51, 0xe1, 0x86, 0x8c, 0x79, 0x89, 0xfb, 0xa6, 0xfd, 0xdd, 0xf7, 0x53, 0xca, 0xd9, 0xdc, 0xed,
-	0xd1, 0xe4, 0x22, 0xf4, 0x2d, 0x64, 0x6b, 0x8e, 0x4e, 0xfe, 0x7f, 0xcf, 0xb2, 0xeb, 0x19, 0x15,
-	0x63, 0x09, 0x5a, 0x61, 0x72, 0x08, 0x3e, 0xd8, 0xac, 0x5e, 0xef, 0xa0, 0x1f, 0x96, 0x05, 0xe3,
-	0xaf, 0xc1, 0x74, 0x79, 0x96, 0x8f, 0xc6, 0x55, 0xbb, 0xd6, 0x56, 0xff, 0x87, 0x4e, 0xea, 0xa3,
-	0x4c, 0x8d, 0x47, 0x8e, 0xa6, 0xdd, 0xb4, 0xa1, 0x78, 0x4e, 0x39, 0xc3, 0x75, 0xa8, 0x9c, 0x4d,
-	0x26, 0xd7, 0xdd, 0xd3, 0xcb, 0x4b, 0x13, 0x61, 0x80, 0xd2, 0xf5, 0x60, 0x3c, 0xbe, 0xb8, 0x32,
-	0xb5, 0xe3, 0x4a, 0xc5, 0x33, 0x1f, 0x1e, 0x1e, 0x1e, 0xb4, 0xe6, 0x37, 0x50, 0x9d, 0x88, 0x19,
-	0x8b, 0xbb, 0x34, 0x61, 0x18, 0x43, 0x51, 0xd2, 0xaa, 0x51, 0x54, 0x89, 0x7a, 0xdf, 0x80, 0xfe,
-	0x85, 0x60, 0x57, 0x75, 0x69, 0xf0, 0x9b, 0x60, 0x61, 0x12, 0x44, 0x61, 0xd2, 0x6e, 0x42, 0x51,
-	0x04, 0x9c, 0xe1, 0x67, 0x23, 0xb2, 0x98, 0x8d, 0x1c, 0x44, 0x54, 0xac, 0xfd, 0x1e, 0x4a, 0x53,
-	0x1a, 0xc7, 0x91, 0xd8, 0x42, 0x05, 0x6a, 0xbc, 0xd6, 0x53, 0xef, 0x9a, 0x9d, 0x2c, 0xf3, 0xda,
-	0x5d, 0x30, 0xbc, 0x28, 0x4c, 0x05, 0xc6, 0x2b, 0xe8, 0xea, 0xd0, 0xea, 0x53, 0xff, 0x45, 0x92,
-	0xa7, 0x36, 0x1d, 0xd8, 0x53, 0x39, 0xcf, 0xc2, 0xdb, 0xcb, 0xdb, 0xb4, 0xa0, 0x32, 0x99, 0x7b,
-	0x0a, 0xa7, 0xaa, 0x7f, 0x7c, 0x7c, 0x7c, 0x2c, 0x77, 0xb4, 0x0a, 0x6a, 0xfe, 0xae, 0x03, 0xf4,
-	0x22, 0xce, 0xd3, 0x30, 0xf8, 0x94, 0x32, 0xfc, 0x0a, 0x6a, 0x9c, 0xde, 0x33, 0x97, 0x33, 0x77,
-	0x1a, 0xe7, 0x14, 0x15, 0x52, 0x95, 0xae, 0x11, 0xeb, 0xc5, 0x19, 0xb6, 0xa0, 0x14, 0xa6, 0xfc,
-	0x96, 0xc5, 0x96, 0x21, 0xd9, 0x87, 0x05, 0xb2, 0xb4, 0xf1, 0xde, 0xb2, 0xd1, 0x25, 0xd9, 0xe8,
-	0x61, 0x21, 0x6f, 0xb5, 0xf4, 0x7a, 0x54, 0x50, 0x25, 0x4c, 0x75, 0xe9, 0x95, 0x16, 0x3e, 0x80,
-	0x92, 0x60, 0x7c, 0xe1, 0x4e, 0x95, 0x1c, 0xa1, 0x61, 0x81, 0x18, 0xd2, 0xee, 0x49, 0xfa, 0x19,
-	0x0b, 0xfc, 0x99, 0x50, 0xbf, 0xa9, 0x26, 0xe9, 0x73, 0x1b, 0x1f, 0x81, 0x21, 0x22, 0x8f, 0x66,
-	0x16, 0x28, 0x4d, 0x7c, 0xb1, 0xea, 0x4d, 0x9f, 0x66, 0x89, 0x22, 0x90, 0x51, 0xbc, 0x0f, 0x06,
-	0xa7, 0xd9, 0x2d, 0xb3, 0x6a, 0xf2, 0xe4, 0xd2, 0xaf, 0x4c, 0xe9, 0xf7, 0xd8, 0x5c, 0x50, 0x25,
-	0x20, 0xff, 0x93, 0x7e, 0x65, 0xe2, 0x26, 0xe8, 0x3c, 0xf1, 0xad, 0x17, 0x9f, 0xfb, 0x29, 0x87,
-	0x05, 0x22, 0x83, 0xf8, 0xa7, 0x4d, 0xfd, 0xdc, 0x51, 0xfa, 0xf9, 0x72, 0x85, 0x5c, 0xf7, 0x6e,
-	0x2d, 0xa1, 0xc3, 0xc2, 0x86, 0x88, 0x36, 0xbe, 0xdc, 0x14, 0xa3, 0x7d, 0x28, 0x71, 0xa6, 0xfa,
-	0xb7, 0x9b, 0x2b, 0x56, 0x6e, 0x35, 0xca, 0x60, 0xf4, 0xe5, 0x81, 0xba, 0x65, 0x30, 0xd2, 0x30,
-	0x88, 0xc2, 0xe3, 0x57, 0x50, 0x5e, 0xca, 0xbd, 0x5c, 0xf3, 0x5c, 0xf0, 0x4d, 0x24, 0x45, 0xe1,
-	0x6c, 0xf0, 0xd1, 0xd4, 0x8e, 0x5b, 0x50, 0x94, 0xa5, 0xcb, 0xe0, 0x68, 0x32, 0xee, 0x9f, 0xfe,
-	0x6c, 0x22, 0x5c, 0x83, 0xf2, 0xf5, 0xcd, 0xe0, 0x4a, 0x1a, 0x9a, 0x54, 0x8d, 0xcb, 0x9b, 0x71,
-	0xff, 0xc2, 0x44, 0x0d, 0xcd, 0x44, 0x1d, 0x1b, 0x74, 0x41, 0xfd, 0xad, 0x7d, 0xf5, 0xd5, 0x31,
-	0x64, 0xa8, 0xd3, 0xfb, 0x77, 0x25, 0x9f, 0x63, 0x7e, 0x51, 0xdd, 0x79, 0xf9, 0x74, 0x51, 0x3f,
-	0xbf, 0x93, 0xdd, 0xf7, 0x1f, 0xdf, 0xf9, 0x81, 0x98, 0xa5, 0xb7, 0xad, 0x69, 0xc4, 0x4f, 0xfc,
-	0x68, 0x4e, 0x43, 0xff, 0x44, 0x5d, 0x8e, 0xb7, 0xe9, 0x5d, 0xfe, 0x32, 0x7d, 0xed, 0xb3, 0xf0,
-	0xb5, 0x1f, 0xa9, 0x5b, 0x55, 0xee, 0xc3, 0xc9, 0xf2, 0x9a, 0xfd, 0x51, 0x3e, 0xfe, 0x09, 0x00,
-	0x00, 0xff, 0xff, 0x0d, 0xa4, 0x7d, 0x7c, 0x75, 0x07, 0x00, 0x00,
+var fileDescriptor_test_2309d445eee26af7 = []byte{
+	// 1033 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x55, 0xdd, 0x6e, 0xe3, 0x44,
+	0x14, 0xce, 0xd8, 0x71, 0x7e, 0x4e, 0x42, 0x6b, 0x46, 0x55, 0x6b, 0x05, 0xed, 0xd6, 0x04, 0x8a,
+	0x4c, 0xc5, 0xa6, 0xda, 0x80, 0xc4, 0x2a, 0x88, 0xd5, 0x36, 0x3f, 0x6d, 0xaa, 0x6d, 0x12, 0x69,
+	0xda, 0x5e, 0xb0, 0x37, 0xd6, 0x34, 0x9e, 0x3a, 0xa6, 0x19, 0x3b, 0x6b, 0x8f, 0x11, 0xbe, 0xeb,
+	0x53, 0xc0, 0x6b, 0x70, 0xcf, 0x0b, 0xf1, 0x16, 0x45, 0x33, 0x0e, 0x49, 0xda, 0xa0, 0xbd, 0xb1,
+	0x7c, 0xce, 0xf9, 0xce, 0xe7, 0x39, 0x3f, 0xfe, 0x06, 0x30, 0xcf, 0x5c, 0xc1, 0x12, 0x71, 0x22,
+	0x1f, 0xad, 0x45, 0x1c, 0x89, 0x08, 0x97, 0x79, 0xd6, 0x92, 0x66, 0x03, 0xf3, 0x74, 0x2e, 0x82,
+	0x13, 0xf5, 0x7c, 0x9d, 0x07, 0x9b, 0xff, 0x14, 0xa1, 0x4c, 0xd8, 0xc7, 0x94, 0x25, 0x02, 0x9b,
+	0xa0, 0xdf, 0xb3, 0xcc, 0x42, 0xb6, 0xee, 0xe8, 0x44, 0xbe, 0x62, 0x07, 0xf4, 0x59, 0xca, 0x2c,
+	0xdd, 0x46, 0xce, 0x4e, 0x7b, 0xbf, 0xb5, 0x24, 0x6a, 0x2d, 0x13, 0x5a, 0xbd, 0x68, 0x1e, 0xc5,
+	0x44, 0x42, 0xf0, 0x31, 0xe8, 0x33, 0x2a, 0xac, 0xa2, 0x42, 0x9a, 0x2b, 0xe4, 0x90, 0x8a, 0xeb,
+	0x6c, 0xc1, 0x3a, 0xa5, 0xb3, 0x41, 0x7f, 0x42, 0x4e, 0x89, 0x04, 0xe1, 0x43, 0xa8, 0x78, 0x8c,
+	0x7a, 0xf3, 0x20, 0x64, 0x56, 0xd9, 0x46, 0x8e, 0xd6, 0xd1, 0x83, 0xf0, 0x8e, 0xac, 0x9c, 0xf8,
+	0x0d, 0x54, 0x93, 0x88, 0x33, 0x3f, 0x8e, 0xd2, 0x85, 0x55, 0xb1, 0x91, 0x03, 0xed, 0xc6, 0xd6,
+	0xc7, 0xaf, 0x22, 0xce, 0xce, 0x25, 0x82, 0xac, 0xc1, 0xb8, 0x0f, 0xf5, 0x90, 0x72, 0xe6, 0x72,
+	0xba, 0x58, 0x04, 0xa1, 0x6f, 0xed, 0xd8, 0xba, 0x53, 0x6b, 0x7f, 0xb9, 0x95, 0x3c, 0xa6, 0x9c,
+	0x8d, 0x72, 0xcc, 0x20, 0x14, 0x71, 0x46, 0x6a, 0xe1, 0xda, 0x83, 0x4f, 0xa1, 0xc6, 0x13, 0x7f,
+	0x45, 0xb2, 0xab, 0x48, 0xec, 0x2d, 0x92, 0x51, 0xe2, 0x3f, 0xe1, 0x00, 0xbe, 0x72, 0xe0, 0x3d,
+	0x30, 0x62, 0x96, 0x30, 0x61, 0xd5, 0x6d, 0xe4, 0x18, 0x24, 0x37, 0xf0, 0x01, 0x94, 0x7d, 0x26,
+	0x5c, 0xd9, 0x65, 0xd3, 0x46, 0x4e, 0x95, 0x94, 0x7c, 0x26, 0xde, 0xb3, 0xac, 0xf1, 0x1d, 0x54,
+	0x57, 0xf5, 0xe0, 0x43, 0xa8, 0xa9, 0x6a, 0xdc, 0xbb, 0x80, 0xcd, 0x3d, 0xab, 0xaa, 0x18, 0x40,
+	0xb9, 0xce, 0xa4, 0xa7, 0xf1, 0x16, 0xcc, 0xe7, 0x05, 0xac, 0x87, 0x27, 0xc1, 0x6a, 0x78, 0x7b,
+	0x60, 0xfc, 0x46, 0xe7, 0x29, 0xb3, 0x34, 0xf5, 0xa9, 0xdc, 0xe8, 0x68, 0x6f, 0x50, 0x63, 0x04,
+	0xbb, 0xcf, 0xce, 0xbe, 0x99, 0x8e, 0xf3, 0xf4, 0xaf, 0x37, 0xd3, 0x6b, 0xed, 0x9d, 0x8d, 0xf2,
+	0x17, 0xf3, 0x6c, 0x83, 0xae, 0x79, 0x04, 0x86, 0xda, 0x04, 0x5c, 0x06, 0x9d, 0x0c, 0xfa, 0x66,
+	0x01, 0x57, 0xc1, 0x38, 0x27, 0x83, 0xc1, 0xd8, 0x44, 0xb8, 0x02, 0xc5, 0xee, 0xe5, 0xcd, 0xc0,
+	0xd4, 0x9a, 0x7f, 0x6a, 0x60, 0xa8, 0x5c, 0x7c, 0x0c, 0xc6, 0x5d, 0x94, 0x86, 0x9e, 0x5a, 0xb5,
+	0x5a, 0x7b, 0xef, 0x29, 0x75, 0x2b, 0xef, 0x66, 0x0e, 0xc1, 0x47, 0x50, 0x9f, 0x46, 0x7c, 0x41,
+	0xa7, 0xaa, 0x6d, 0x89, 0xa5, 0xd9, 0xba, 0x63, 0x74, 0x35, 0x13, 0x91, 0xda, 0xd2, 0xff, 0x9e,
+	0x65, 0x49, 0xe3, 0x2f, 0x04, 0x46, 0x5e, 0x49, 0x1f, 0x0e, 0xef, 0x59, 0xe6, 0x8a, 0x19, 0x15,
+	0x6e, 0xc8, 0x98, 0x97, 0xb8, 0xaf, 0xdb, 0xdf, 0xff, 0x30, 0xa5, 0x9c, 0xcd, 0xdd, 0x1e, 0x4d,
+	0x2e, 0x42, 0xdf, 0x42, 0xb6, 0xe6, 0xe8, 0xe4, 0x8b, 0x7b, 0x96, 0x5d, 0xcf, 0xa8, 0x18, 0x4b,
+	0xd0, 0x0a, 0x93, 0x43, 0xf0, 0xc1, 0x66, 0xf5, 0x7a, 0x07, 0xfd, 0xb8, 0x2c, 0x18, 0x7f, 0x03,
+	0xa6, 0xcb, 0xb3, 0x7c, 0x34, 0xae, 0xda, 0xb5, 0xb6, 0xfa, 0x3f, 0x74, 0x52, 0x1f, 0x65, 0x6a,
+	0x3c, 0x72, 0x34, 0xed, 0xa6, 0x0d, 0xc5, 0x73, 0xca, 0x19, 0xae, 0x43, 0xe5, 0x6c, 0x32, 0xb9,
+	0xee, 0x9e, 0x5e, 0x5e, 0x9a, 0x08, 0x03, 0x94, 0xae, 0x07, 0xe3, 0xf1, 0xc5, 0x95, 0xa9, 0x1d,
+	0x57, 0x2a, 0x9e, 0xf9, 0xf0, 0xf0, 0xf0, 0xa0, 0x35, 0xbf, 0x85, 0xea, 0x44, 0xcc, 0x58, 0xdc,
+	0xa5, 0x09, 0xc3, 0x18, 0x8a, 0x92, 0x56, 0x8d, 0xa2, 0x4a, 0xd4, 0xfb, 0x06, 0xf4, 0x6f, 0x04,
+	0xbb, 0xaa, 0x4b, 0x83, 0xdf, 0x05, 0x0b, 0x93, 0x20, 0x0a, 0x93, 0x76, 0x13, 0x8a, 0x22, 0xe0,
+	0x0c, 0x3f, 0x1b, 0x91, 0xc5, 0x6c, 0xe4, 0x20, 0xa2, 0x62, 0xed, 0x77, 0x50, 0x9a, 0xd2, 0x38,
+	0x8e, 0xc4, 0x16, 0x2a, 0x50, 0xe3, 0xb5, 0x9e, 0x7a, 0xd7, 0xec, 0x64, 0x99, 0xd7, 0xee, 0x82,
+	0xe1, 0x45, 0x61, 0x2a, 0x30, 0x5e, 0x41, 0x57, 0x87, 0x56, 0x9f, 0xfa, 0x14, 0x49, 0x9e, 0xda,
+	0x74, 0x60, 0x4f, 0xe5, 0x3c, 0x0b, 0x6f, 0x2f, 0x6f, 0xd3, 0x82, 0xca, 0x64, 0xee, 0x29, 0x9c,
+	0xaa, 0xfe, 0xf1, 0xf1, 0xf1, 0xb1, 0xdc, 0xd1, 0x2a, 0xa8, 0xf9, 0x87, 0x0e, 0xd0, 0x8b, 0x38,
+	0x4f, 0xc3, 0xe0, 0x63, 0xca, 0xf0, 0x4b, 0xa8, 0x71, 0x7a, 0xcf, 0x5c, 0xce, 0xdc, 0x69, 0x9c,
+	0x53, 0x54, 0x48, 0x55, 0xba, 0x46, 0xac, 0x17, 0x67, 0xd8, 0x82, 0x52, 0x98, 0xf2, 0x5b, 0x16,
+	0x5b, 0x86, 0x64, 0x1f, 0x16, 0xc8, 0xd2, 0xc6, 0x7b, 0xcb, 0x46, 0x97, 0x64, 0xa3, 0x87, 0x85,
+	0xbc, 0xd5, 0xd2, 0xeb, 0x51, 0x41, 0x95, 0x30, 0xd5, 0xa5, 0x57, 0x5a, 0xf8, 0x00, 0x4a, 0x82,
+	0xf1, 0x85, 0x3b, 0x55, 0x72, 0x84, 0x86, 0x05, 0x62, 0x48, 0xbb, 0x27, 0xe9, 0x67, 0x2c, 0xf0,
+	0x67, 0x42, 0xfd, 0xa6, 0x9a, 0xa4, 0xcf, 0x6d, 0x7c, 0x04, 0x86, 0x88, 0x3c, 0x9a, 0x59, 0xa0,
+	0x34, 0xf1, 0xb3, 0x55, 0x6f, 0xfa, 0x34, 0x4b, 0x14, 0x81, 0x8c, 0xe2, 0x7d, 0x30, 0x38, 0xcd,
+	0x6e, 0x99, 0x55, 0x93, 0x27, 0x97, 0x7e, 0x65, 0x4a, 0xbf, 0xc7, 0xe6, 0x82, 0x2a, 0x01, 0xf9,
+	0x5c, 0xfa, 0x95, 0x89, 0x9b, 0xa0, 0xf3, 0xc4, 0x57, 0xf2, 0xb1, 0xf5, 0x53, 0x0e, 0x0b, 0x44,
+	0x06, 0xf1, 0xcf, 0x9b, 0xfa, 0xb9, 0xa3, 0xf4, 0xf3, 0xc5, 0x0a, 0xb9, 0xee, 0xdd, 0x5a, 0x42,
+	0x87, 0x85, 0x0d, 0x11, 0x6d, 0x7c, 0xb5, 0x29, 0x46, 0xfb, 0x50, 0xe2, 0x4c, 0xf5, 0x6f, 0x37,
+	0x57, 0xac, 0xdc, 0x6a, 0x94, 0xc1, 0xe8, 0xcb, 0x03, 0x75, 0xcb, 0x60, 0xa4, 0x61, 0x10, 0x85,
+	0xc7, 0x2f, 0xa1, 0xbc, 0x94, 0x7b, 0xb9, 0xe6, 0xb9, 0xe0, 0x9b, 0x48, 0x8a, 0xc2, 0xd9, 0xe0,
+	0x83, 0xa9, 0x1d, 0xb7, 0xa0, 0x28, 0x4b, 0x97, 0xc1, 0xd1, 0x64, 0xdc, 0x3f, 0xfd, 0xc5, 0x44,
+	0xb8, 0x06, 0xe5, 0xeb, 0x9b, 0xc1, 0x95, 0x34, 0x34, 0xa9, 0x1a, 0x97, 0x37, 0xe3, 0xfe, 0x85,
+	0x89, 0x1a, 0x9a, 0x89, 0x3a, 0x36, 0xe8, 0x82, 0xfa, 0x5b, 0xfb, 0xea, 0xab, 0x63, 0xc8, 0x50,
+	0xa7, 0xf7, 0xdf, 0x4a, 0x3e, 0xc7, 0xfc, 0xaa, 0xba, 0xf3, 0xe2, 0xe9, 0xa2, 0xfe, 0xff, 0x4e,
+	0x76, 0xdf, 0x7d, 0x78, 0xeb, 0x07, 0x62, 0x96, 0xde, 0xb6, 0xa6, 0x11, 0x3f, 0xf1, 0xa3, 0x39,
+	0x0d, 0xfd, 0x13, 0x75, 0x39, 0xde, 0xa6, 0x77, 0xf9, 0xcb, 0xf4, 0x95, 0xcf, 0xc2, 0x57, 0x7e,
+	0xa4, 0x6e, 0x55, 0xb9, 0x0f, 0x27, 0xcb, 0x6b, 0xf6, 0x27, 0xf9, 0xf8, 0x37, 0x00, 0x00, 0xff,
+	0xff, 0x12, 0xd5, 0x46, 0x00, 0x75, 0x07, 0x00, 0x00,
 }
diff --git a/protoc-gen-go/testdata/my_test/test.proto b/protoc-gen-go/testdata/my_test/test.proto
index 4f133dc..1ef3fd0 100644
--- a/protoc-gen-go/testdata/my_test/test.proto
+++ b/protoc-gen-go/testdata/my_test/test.proto
@@ -147,7 +147,7 @@
     Days today = 10;
     bool maybe = 11;
     sint32 delta = 12;  // name will conflict with Delta below
-    Reply msg = 13;
+    Reply msg = 16;  // requires two bytes to encode field tag
     group SomeGroup = 14 {
       optional string member = 15;
     }
diff --git a/ptypes/struct/struct.pb.go b/ptypes/struct/struct.pb.go
index 8201c4a..442c0e0 100644
--- a/ptypes/struct/struct.pb.go
+++ b/ptypes/struct/struct.pb.go
@@ -324,26 +324,26 @@
 	// kind
 	switch x := m.Kind.(type) {
 	case *Value_NullValue:
-		n += proto.SizeVarint(1<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(x.NullValue))
 	case *Value_NumberValue:
-		n += proto.SizeVarint(2<<3 | proto.WireFixed64)
+		n += 1 // tag and wire
 		n += 8
 	case *Value_StringValue:
-		n += proto.SizeVarint(3<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(len(x.StringValue)))
 		n += len(x.StringValue)
 	case *Value_BoolValue:
-		n += proto.SizeVarint(4<<3 | proto.WireVarint)
+		n += 1 // tag and wire
 		n += 1
 	case *Value_StructValue:
 		s := proto.Size(x.StructValue)
-		n += proto.SizeVarint(5<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(s))
 		n += s
 	case *Value_ListValue:
 		s := proto.Size(x.ListValue)
-		n += proto.SizeVarint(6<<3 | proto.WireBytes)
+		n += 1 // tag and wire
 		n += proto.SizeVarint(uint64(s))
 		n += s
 	case nil:
