diff --git a/proto/text.go b/proto/text.go
index <HASH>..<HASH> 100644
--- a/proto/text.go
+++ b/proto/text.go
@@ -334,7 +334,8 @@ func writeStruct(w *textWriter, sv reflect.Value) error {
 				}
 				inner := fv.Elem().Elem() // interface -> *T -> T
 				tag := inner.Type().Field(0).Tag.Get("protobuf")
-				props.Parse(tag) // Overwrite the outer props.
+				props = new(Properties) // Overwrite the outer props var, but not its pointee.
+				props.Parse(tag)
 				// Write the value in the oneof, not the oneof itself.
 				fv = inner.Field(0)
Fix race in text formatting of oneof fields.

I was reparsing the oneof's struct field tag,
but not making a new Properties for it.