diff --git a/src/cmd/6g/gen.c b/src/cmd/6g/gen.c
index 633c325..1b4c7e6 100644
--- a/src/cmd/6g/gen.c
+++ b/src/cmd/6g/gen.c
@@ -28,7 +28,7 @@
 	newproc->sym = pkglookup("newproc", "sys");
 	newproc->class = PEXTERN;
 	newproc->addable = 1;
-	newproc->ullman = 0;
+	newproc->ullman = 1;
 }
 
 if(throwindex == N) {
@@ -36,7 +36,7 @@
 	throwindex->sym = pkglookup("throwindex", "sys");
 	throwindex->class = PEXTERN;
 	throwindex->addable = 1;
-	throwindex->ullman = 0;
+	throwindex->ullman = 1;
 }
 
 if(throwreturn == N) {
@@ -44,7 +44,7 @@
 	throwreturn->sym = pkglookup("throwreturn", "sys");
 	throwreturn->class = PEXTERN;
 	throwreturn->addable = 1;
-	throwreturn->ullman = 0;
+	throwreturn->ullman = 1;
 }
 
 	if(fn->nbody == N)
diff --git a/src/cmd/6g/gsubr.c b/src/cmd/6g/gsubr.c
index 3114eab..7ca619c 100644
--- a/src/cmd/6g/gsubr.c
+++ b/src/cmd/6g/gsubr.c
@@ -1640,7 +1640,7 @@
 	n->etype = t->etype;
 	n->class = PAUTO;
 	n->addable = 1;
-	n->ullman = 0;
+	n->ullman = 1;
 
 	dowidth(t);
 	w = t->width;
diff --git a/src/cmd/gc/dcl.c b/src/cmd/gc/dcl.c
index 3fb7710..effb957 100644
--- a/src/cmd/gc/dcl.c
+++ b/src/cmd/gc/dcl.c
@@ -865,7 +865,7 @@
 	n->sym = s;
 	n->type = T;
 	n->addable = 1;
-	n->ullman = 0;
+	n->ullman = 1;
 	return n;
 }
 
@@ -886,7 +886,7 @@
 		n->sym = s;
 		n->type = T;
 		n->addable = 1;
-		n->ullman = 0;
+		n->ullman = 1;
 	}
 	return n;
 }
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index ddf0560..2e81078 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -2048,7 +2048,7 @@
 	switch(n->op) {
 	case OLITERAL:
 	case ONAME:
-		ul = 0;
+		ul = 1;
 		goto out;
 	case OCALL:
 	case OCALLMETH:
@@ -2056,10 +2056,10 @@
 		ul = UINF;
 		goto out;
 	}
-	ul = 0;
+	ul = 1;
 	if(n->left != N)
 		ul = n->left->ullman;
-	ur = 0;
+	ur = 1;
 	if(n->right != N)
 		ur = n->right->ullman;
 	if(ul == ur)
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c
index 42eb037..13ad69a 100644
--- a/src/cmd/gc/walk.c
+++ b/src/cmd/gc/walk.c
@@ -3053,6 +3053,7 @@
 		fatal("reorder1 OLIST");
 
 	t++;
+	ullmancalc(l);
 	if(l->ullman >= UINF)
 		c++;
 	l = listnext(&save);
@@ -3072,6 +3073,7 @@
 		r = list(f, r);
 		return r;
 	}
+	ullmancalc(l);
 	if(l->ullman < UINF) {
 		r = list(l, r);
 		goto more;
@@ -3123,6 +3125,7 @@
 	if(l->op == OLIST)
 		fatal("reorder2 OLIST");
 
+	ullmancalc(l);
 	if(l->ullman >= UINF)
 		c++;
 	l = listnext(&save);
