diff --git a/cue/types.go b/cue/types.go
index a77b029..f21a7bd 100644
--- a/cue/types.go
+++ b/cue/types.go
@@ -1475,10 +1475,10 @@
 		return newErrValue(v, err)
 	}
 
-	f := v.ctx().strLabel(name)
+	f := v.ctx().label(name, true)
 	for i, a := range o.arcs {
 		if a.feature == f {
-			if !a.definition || a.optional {
+			if f&hidden != 0 || !a.definition || a.optional {
 				break
 			}
 			return newChildValue(&o, i)
diff --git a/cue/types_test.go b/cue/types_test.go
index 2320bc4..5d7a880 100644
--- a/cue/types_test.go
+++ b/cue/types_test.go
@@ -842,6 +842,41 @@
 	}
 }
 
+func TestValue_LookupDef(t *testing.T) {
+	r := &Runtime{}
+
+	testCases := []struct {
+		in     string
+		def    string // comma-separated path
+		exists bool
+		out    string
+	}{{
+		in:  `#foo: 3`,
+		def: "#foo",
+		out: `3`,
+	}, {
+		in:  `_foo: 3`,
+		def: "_foo",
+		out: `_|_(defintion "_foo" not found)`,
+	}, {
+		in:  `#_foo: 3`,
+		def: "#_foo",
+		out: `_|_(defintion "#_foo" not found)`,
+	}}
+
+	for _, tc := range testCases {
+		t.Run(tc.def, func(t *testing.T) {
+			v := compile(t, r, tc.in).Value()
+			v = v.LookupDef(tc.def)
+			got := fmt.Sprint(v)
+
+			if got != tc.out {
+				t.Errorf("\ngot:  %s\nwant: %s", got, tc.out)
+			}
+		})
+	}
+}
+
 func TestDefaults(t *testing.T) {
 	testCases := []struct {
 		value string
