fix:
	type T []int
	var a []int
	var t = T(a)

R=ken
OCL=22341
CL=22341
diff --git a/src/cmd/6g/cgen.c b/src/cmd/6g/cgen.c
index 0ab1be5..2289164 100644
--- a/src/cmd/6g/cgen.c
+++ b/src/cmd/6g/cgen.c
@@ -415,6 +415,12 @@
 		fatal("agen: unknown op %N", n);
 		break;
 
+	case OCONV:
+		if(!eqtype(n->type, nl->type, 0))
+			fatal("agen: non-trivial OCONV");
+		agen(nl, res);
+		return;
+
 	case OCALLMETH:
 		cgen_callmeth(n, 0);
 		cgen_aret(n, res);
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c
index e0eb648..cfc3154f 100644
--- a/src/cmd/gc/walk.c
+++ b/src/cmd/gc/walk.c
@@ -563,8 +563,10 @@
 
 		// nil conversion
 		if(eqtype(t, l->type, 0)) {
-			if(l->op != ONAME)
+			if(l->op != ONAME) {
 				indir(n, l);
+				n->type = t;
+			}
 			goto ret;
 		}