diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go
index 73326d1..9f1da09 100644
--- a/encoding/textpb/encode.go
+++ b/encoding/textpb/encode.go
@@ -46,9 +46,7 @@
 	}
 
 	var nerr errors.NonFatal
-	var v text.Value
-	var err error
-	v, err = o.marshalMessage(m.ProtoReflect())
+	v, err := o.marshalMessage(m.ProtoReflect())
 	if !nerr.Merge(err) {
 		return nil, err
 	}
@@ -99,10 +97,14 @@
 			continue
 		}
 
-		tname := text.ValueOf(fd.Name())
+		name := text.ValueOf(fd.Name())
+		// Use type name for group field name.
+		if fd.Kind() == pref.GroupKind {
+			name = text.ValueOf(fd.MessageType().Name())
+		}
 		pval := knownFields.Get(num)
 		var err error
-		msgFields, err = o.appendField(msgFields, tname, pval, fd)
+		msgFields, err = o.appendField(msgFields, name, pval, fd)
 		if !nerr.Merge(err) {
 			return text.Value{}, err
 		}
@@ -126,14 +128,9 @@
 }
 
 // appendField marshals a protoreflect.Value and appends it to the given [][2]text.Value.
-func (o MarshalOptions) appendField(msgFields [][2]text.Value, tname text.Value, pval pref.Value, fd pref.FieldDescriptor) ([][2]text.Value, error) {
+func (o MarshalOptions) appendField(msgFields [][2]text.Value, name text.Value, pval pref.Value, fd pref.FieldDescriptor) ([][2]text.Value, error) {
 	var nerr errors.NonFatal
 
-	// Use type name for group field name.
-	if fd.Kind() == pref.GroupKind {
-		tname = text.ValueOf(fd.MessageType().Name())
-	}
-
 	if fd.Cardinality() == pref.Repeated {
 		// Map or repeated fields.
 		var items []text.Value
@@ -152,7 +149,7 @@
 
 		// Add each item as key: value field.
 		for _, item := range items {
-			msgFields = append(msgFields, [2]text.Value{tname, item})
+			msgFields = append(msgFields, [2]text.Value{name, item})
 		}
 	} else {
 		// Required or optional fields.
@@ -160,7 +157,7 @@
 		if !nerr.Merge(err) {
 			return msgFields, err
 		}
-		msgFields = append(msgFields, [2]text.Value{tname, tval})
+		msgFields = append(msgFields, [2]text.Value{name, tval})
 	}
 
 	return msgFields, nerr.E
diff --git a/encoding/textpb/encode_test.go b/encoding/textpb/encode_test.go
index 963fafe..b32d2db 100644
--- a/encoding/textpb/encode_test.go
+++ b/encoding/textpb/encode_test.go
@@ -531,6 +531,14 @@
 rpt_nested: {}
 `,
 	}, {
+		desc: "repeated nested messages contains nil value",
+		input: &pb2.Nests{
+			RptNested: []*pb2.Nested{nil, {}},
+		},
+		want: `rpt_nested: {}
+rpt_nested: {}
+`,
+	}, {
 		desc: "repeated group fields",
 		input: &pb2.Nests{
 			Rptgroup: []*pb2.Nests_RptGroup{
@@ -679,6 +687,18 @@
 }
 `,
 	}, {
+		desc: "map field nil message value",
+		input: &pb2.Maps{
+			StrToNested: map[string]*pb2.Nested{
+				"nil": nil,
+			},
+		},
+		want: `str_to_nested: {
+  key: "nil"
+  value: {}
+}
+`,
+	}, {
 		desc:    "proto2 required fields not set",
 		input:   &pb2.Requireds{},
 		want:    "\n",
