diff --git a/cue/errors/errors.go b/cue/errors/errors.go
index 691b7e1..cfcf8a9 100644
--- a/cue/errors/errors.go
+++ b/cue/errors/errors.go
@@ -20,6 +20,7 @@
 package errors // import "cuelang.org/go/cue/errors"
 
 import (
+	"bytes"
 	"errors"
 	"fmt"
 	"io"
@@ -450,6 +451,14 @@
 	}
 }
 
+// Details is a convenience wrapper for Print to return the error text as a
+// string.
+func Details(err error, cfg *Config) string {
+	w := &bytes.Buffer{}
+	Print(w, err, cfg)
+	return w.String()
+}
+
 func defaultFprintf(w io.Writer, format string, args ...interface{}) {
 	fmt.Fprintf(w, format, args...)
 }
diff --git a/encoding/protobuf/parse.go b/encoding/protobuf/parse.go
index 76183c7..bfde74c 100644
--- a/encoding/protobuf/parse.go
+++ b/encoding/protobuf/parse.go
@@ -273,7 +273,7 @@
 			alias, ok := p.aliases[first]
 			if !ok {
 				// TODO: this is likely to be okay, but find something better.
-				alias = "__" + first
+				alias = "_" + first + "_"
 				p.file.Decls = append(p.file.Decls, &ast.Alias{
 					Ident: ast.NewIdent(alias),
 					Expr:  ast.NewIdent(first),
diff --git a/encoding/protobuf/protobuf_test.go b/encoding/protobuf/protobuf_test.go
index bd5a905..b824e05 100644
--- a/encoding/protobuf/protobuf_test.go
+++ b/encoding/protobuf/protobuf_test.go
@@ -25,6 +25,7 @@
 	"testing"
 
 	"cuelang.org/go/cue/ast"
+	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/format"
 	"github.com/kr/pretty"
 )
@@ -92,7 +93,7 @@
 
 	files, err := b.Files()
 	if err != nil {
-		t.Fatal(err)
+		t.Fatal(errors.Details(err, nil))
 	}
 
 	if *update {
diff --git a/encoding/protobuf/testdata/attributes.proto.out.cue b/encoding/protobuf/testdata/attributes.proto.out.cue
index 4ac3479..936a6db 100644
--- a/encoding/protobuf/testdata/attributes.proto.out.cue
+++ b/encoding/protobuf/testdata/attributes.proto.out.cue
@@ -128,17 +128,17 @@
 
 	// Holds attributes of type TIMESTAMP
 	time?: {
-		<_>: __time.Time
+		<_>: _time_.Time
 	} @protobuf(6,type=map<sint32,google.protobuf.Timestamp>,"(gogoproto.nullable)=false","(gogoproto.stdtime)")
 
 	// Holds attributes of type DURATION
 	durations?: {
-		<_>: __time.Duration
+		<_>: _time_.Duration
 	} @protobuf(7,type=map<sint32,google.protobuf.Duration>,"(gogoproto.nullable)=false","(gogoproto.stdduration)")
 
 	// Holds attributes of type BYTES
 	bytes?: {
-		<_>: __bytes
+		<_>: _bytes_
 	} @protobuf(8,type=map<sint32,bytes>)
 
 	// Holds attributes of type STRING_MAP
@@ -146,8 +146,8 @@
 		<_>: StringMap
 	} @protobuf(9,type=map<sint32,StringMap>,string_maps,"(gogoproto.nullable)=false")
 }
-__time = time
-__bytes = bytes
+_time_ = time
+_bytes_ = bytes
 
 // A map of string to string. The keys and values in this map are dictionary
 // indices (see the [Attributes][istio.mixer.v1.CompressedAttributes] message for an explanation)
diff --git a/encoding/protobuf/testdata/istio.io/api/mixer/v1/attributes_proto_gen.cue b/encoding/protobuf/testdata/istio.io/api/mixer/v1/attributes_proto_gen.cue
index 97fa441..27260d7 100644
--- a/encoding/protobuf/testdata/istio.io/api/mixer/v1/attributes_proto_gen.cue
+++ b/encoding/protobuf/testdata/istio.io/api/mixer/v1/attributes_proto_gen.cue
@@ -128,17 +128,17 @@
 
 	// Holds attributes of type TIMESTAMP
 	time?: {
-		<_>: __time.Time
+		<_>: _time_.Time
 	} @protobuf(6,type=map<sint32,google.protobuf.Timestamp>,"(gogoproto.nullable)=false","(gogoproto.stdtime)")
 
 	// Holds attributes of type DURATION
 	durations?: {
-		<_>: __time.Duration
+		<_>: _time_.Duration
 	} @protobuf(7,type=map<sint32,google.protobuf.Duration>,"(gogoproto.nullable)=false","(gogoproto.stdduration)")
 
 	// Holds attributes of type BYTES
 	bytes?: {
-		<_>: __bytes
+		<_>: _bytes_
 	} @protobuf(8,type=map<sint32,bytes>)
 
 	// Holds attributes of type STRING_MAP
@@ -146,8 +146,8 @@
 		<_>: StringMap
 	} @protobuf(9,type=map<sint32,StringMap>,string_maps,"(gogoproto.nullable)=false")
 }
-__time = time
-__bytes = bytes
+_time_ = time
+_bytes_ = bytes
 
 // A map of string to string. The keys and values in this map are dictionary
 // indices (see the [Attributes][istio.mixer.v1.CompressedAttributes] message for an explanation)
diff --git a/encoding/protobuf/testdata/istio.io/api/mixer/v1/mixer_proto_gen.cue b/encoding/protobuf/testdata/istio.io/api/mixer/v1/mixer_proto_gen.cue
index 4d07c39..1a75599 100644
--- a/encoding/protobuf/testdata/istio.io/api/mixer/v1/mixer_proto_gen.cue
+++ b/encoding/protobuf/testdata/istio.io/api/mixer/v1/mixer_proto_gen.cue
@@ -68,7 +68,7 @@
 CheckResponse_PreconditionResult: {
 	// A status code of OK indicates all preconditions were satisfied. Any other code indicates not
 	// all preconditions were satisfied and details describe why.
-	status?: __status.Status @protobuf(1,type=google.rpc.Status,"(gogoproto.nullable)=false")
+	status?: _status_.Status @protobuf(1,type=google.rpc.Status,"(gogoproto.nullable)=false")
 
 	// The amount of time for which this result can be considered valid.
 	validDuration?: time.Duration @protobuf(2,type=google.protobuf.Duration,name=valid_duration,"(gogoproto.nullable)=false","(gogoproto.stdduration)")
@@ -84,7 +84,7 @@
 	// whenever all preconditions are satisfied.
 	routeDirective?: RouteDirective @protobuf(6,name=route_directive)
 }
-__status = status
+_status_ = status
 
 // Expresses the result of a quota allocation.
 CheckResponse_QuotaResult: {
