diff --git a/internal/impl/api_export.go b/internal/impl/api_export.go
index bde4754..4d22c96 100644
--- a/internal/impl/api_export.go
+++ b/internal/impl/api_export.go
@@ -124,7 +124,7 @@
 	if mv := (Export{}).protoMessageV2Of(m); mv != nil {
 		return mv
 	}
-	return legacyWrapMessage(reflect.ValueOf(m))
+	return legacyWrapMessage(reflect.ValueOf(m)).Interface()
 }
 
 // MessageOf returns the protoreflect.Message interface over m.
@@ -136,7 +136,7 @@
 	if mv := (Export{}).protoMessageV2Of(m); mv != nil {
 		return mv.ProtoReflect()
 	}
-	return legacyWrapMessage(reflect.ValueOf(m)).ProtoReflect()
+	return legacyWrapMessage(reflect.ValueOf(m))
 }
 
 // MessageDescriptorOf returns the protoreflect.MessageDescriptor for m.
diff --git a/internal/impl/codec_field.go b/internal/impl/codec_field.go
index 9497707..c00744d 100644
--- a/internal/impl/codec_field.go
+++ b/internal/impl/codec_field.go
@@ -824,5 +824,5 @@
 	if m, ok := v.Interface().(pref.ProtoMessage); ok {
 		return m
 	}
-	return legacyWrapMessage(v)
+	return legacyWrapMessage(v).Interface()
 }
diff --git a/internal/impl/convert.go b/internal/impl/convert.go
index 5fdb022..9fc384a 100644
--- a/internal/impl/convert.go
+++ b/internal/impl/convert.go
@@ -426,7 +426,7 @@
 	if m, ok := v.Interface().(pref.ProtoMessage); ok {
 		return pref.ValueOfMessage(m.ProtoReflect())
 	}
-	return pref.ValueOfMessage(legacyWrapMessage(v).ProtoReflect())
+	return pref.ValueOfMessage(legacyWrapMessage(v))
 }
 
 func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value {
diff --git a/internal/impl/legacy_message.go b/internal/impl/legacy_message.go
index 43b8be2..a723569 100644
--- a/internal/impl/legacy_message.go
+++ b/internal/impl/legacy_message.go
@@ -21,15 +21,15 @@
 	piface "google.golang.org/protobuf/runtime/protoiface"
 )
 
-// legacyWrapMessage wraps v as a protoreflect.ProtoMessage,
+// legacyWrapMessage wraps v as a protoreflect.Message,
 // where v must be a *struct kind and not implement the v2 API already.
-func legacyWrapMessage(v reflect.Value) pref.ProtoMessage {
+func legacyWrapMessage(v reflect.Value) pref.Message {
 	typ := v.Type()
 	if typ.Kind() != reflect.Ptr || typ.Elem().Kind() != reflect.Struct {
 		return aberrantMessage{v: v}
 	}
 	mt := legacyLoadMessageInfo(typ, "")
-	return mt.MessageOf(v.Interface()).Interface()
+	return mt.MessageOf(v.Interface())
 }
 
 var legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo
