diff --git a/src/cmd/gc/align.c b/src/cmd/gc/align.c
index 4303bbd0f18846867693f6a2b559efd0beceaf0f..a8454bf1306f11012a8fccc814c56152b6395cdf 100644
--- a/src/cmd/gc/align.c
+++ b/src/cmd/gc/align.c
@@ -468,7 +468,7 @@ typeinit(void)
 			okforadd[i] = 1;
 			okforarith[i] = 1;
 			okforconst[i] = 1;
-//			issimple[i] = 1;
+			issimple[i] = 1;
 		}
 	}
 
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index 884bb439d8598a4705f459b25f7f91fda9f4f048..bb250569406d5bc449614a190bc4b74facf49b5f 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -488,7 +488,7 @@ algtype(Type *t)
 {
 	int a;
 
-	if(issimple[t->etype] || isptr[t->etype] || iscomplex[t->etype] ||
+	if(issimple[t->etype] || isptr[t->etype] ||
 		t->etype == TCHAN || t->etype == TFUNC || t->etype == TMAP) {
 		if(t->width == widthptr)
 			a = AMEMWORD;
diff --git a/test/fixedbugs/bug334.go b/test/fixedbugs/bug334.go
new file mode 100644
index 0000000000000000000000000000000000000000..870c9ae24fb43af7752e88daf8ca4c8754f32f1e
--- /dev/null
+++ b/test/fixedbugs/bug334.go
@@ -0,0 +1,31 @@
+// $G $D/$F.go || echo BUG: bug334
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 1716
+
+package main
+
+type (
+	cplx64  complex64
+	cplx128 complex128
+)
+
+func (c cplx64) Foo()  {}
+func (c cplx128) Foo() {}
+
+func main() {
+	var c64 cplx128
+	var c128 cplx64
+	c64.Foo()
+	c128.Foo()
+}
+
+/*
+bug334.go:16: invalid receiver type cplx64
+bug334.go:17: invalid receiver type cplx128
+bug334.go:22: c64.Foo undefined (type cplx128 has no field or method Foo)
+bug334.go:23: c128.Foo undefined (type cplx64 has no field or method Foo)
+*/