diff --git a/src/cmd/acidtypes/stabs.c b/src/cmd/acidtypes/stabs.c
index bd6e718..51d71c4 100644
--- a/src/cmd/acidtypes/stabs.c
+++ b/src/cmd/acidtypes/stabs.c
@@ -146,6 +146,7 @@
 	Type *t;
 	char *attr;
 
+	n1 = n2 = 0;
 	parsenum(desc, &n1, &n2, &desc);
 	t = typebynum(n1, n2);
 	if(*desc != '='){
diff --git a/src/cmd/acme/edit.c b/src/cmd/acme/edit.c
index ccc7f58..7bccd3a 100644
--- a/src/cmd/acme/edit.c
+++ b/src/cmd/acme/edit.c
@@ -605,6 +605,7 @@
 	Addr addr;
 	Addr *ap, *nap;
 
+	addr.num = 0;
 	addr.next = 0;
 	addr.u.left = 0;
 	switch(cmdskipbl()){
diff --git a/src/cmd/acme/look.c b/src/cmd/acme/look.c
index 000b340..c22213f 100644
--- a/src/cmd/acme/look.c
+++ b/src/cmd/acme/look.c
@@ -696,6 +696,8 @@
 	Rune *rp;
 	uint dummy;
 
+	r.q0 = 0;
+	r.q1 = 0;
 	if(e->nname == 0){
 		w = t->w;
 		if(w == nil)
diff --git a/src/cmd/auxstats/Darwin.c b/src/cmd/auxstats/Darwin.c
index da6c2a2..46ba5cb 100644
--- a/src/cmd/auxstats/Darwin.c
+++ b/src/cmd/auxstats/Darwin.c
@@ -83,6 +83,7 @@
 void
 xnet(int first)
 {
+#if 0
 	ulong out, in, outb, inb, err;
 	static ulong ifnetaddr;
 	ulong addr;
@@ -123,6 +124,8 @@
 	Bprint(&bout, "ethererr %lud\n", err);
 	Bprint(&bout, "ether %lud\n", in+out);
 	Bprint(&bout, "etherb %lud\n", inb+outb);
+#endif
+	USED(first);
 }
 
 
diff --git a/src/cmd/ed.c b/src/cmd/ed.c
index f44acb0..60ba83c 100644
--- a/src/cmd/ed.c
+++ b/src/cmd/ed.c
@@ -929,7 +929,7 @@
 	*p = 0;
 	pid = fork();
 	if(pid == 0) {
-		execlp("rc", "rc", "-c", buf, 0);
+		execlp("rc", "rc", "-c", buf, (char*)0);
 		sysfatal("exec failed: %r");
 		exits("execl failed");
 	}
diff --git a/src/cmd/hist.c b/src/cmd/hist.c
index 6fa0da9..46fd3f8 100644
--- a/src/cmd/hist.c
+++ b/src/cmd/hist.c
@@ -144,7 +144,7 @@
 				print("diff %s %s\n", pair[toggle^1], pair[toggle]);
 			switch(rfork(RFFDG|RFPROC)){
 			case 0:
-				execlp("diff", "diff", diffb ? "-cb" : "-c", pair[toggle], pair[toggle ^ 1], 0);
+				execlp("diff", "diff", diffb ? "-cb" : "-c", pair[toggle], pair[toggle ^ 1], (char*)0);
 				fprint(2, "can't exec diff: %r\n");
 				exits(0);
 			case -1:
diff --git a/src/cmd/pic/pltroff.c b/src/cmd/pic/pltroff.c
index d3e3151..8f3d5ac 100644
--- a/src/cmd/pic/pltroff.c
+++ b/src/cmd/pic/pltroff.c
@@ -144,11 +144,6 @@
 	vpos = n;
 }
 
-double fabs(double x)
-{
-	return x < 0 ? -x : x;
-}
-
 void hvflush(void)	/* get to proper point for output */
 {
 	if (fabs(hpos-htrue) >= 0.0005) {
diff --git a/src/cmd/postscript/tr2post/Bgetfield.c b/src/cmd/postscript/tr2post/Bgetfield.c
index fc0dfc1..d976b40 100644
--- a/src/cmd/postscript/tr2post/Bgetfield.c
+++ b/src/cmd/postscript/tr2post/Bgetfield.c
@@ -108,7 +108,7 @@
 		while (!bailout && (r = Bgetrune(bp))>=0) {
 			switch (sindex++) {
 			case 0:
-				if (*c == '0') {
+				if (r == '0') {
 					base = 8;
 					continue;
 				}
diff --git a/src/lib9/await.c b/src/lib9/await.c
index 81ac0b3..e96055f 100644
--- a/src/lib9/await.c
+++ b/src/lib9/await.c
@@ -4,9 +4,9 @@
 
 #include <signal.h>
 #include <sys/types.h>
+#include <sys/wait.h>
 #include <sys/time.h>
 #include <sys/resource.h>
-#include <sys/wait.h>
 
 #ifndef WCOREDUMP	/* not on Mac OS X Tiger */
 #define WCOREDUMP(status) 0
diff --git a/src/libauth/auth_proxy.c b/src/libauth/auth_proxy.c
index 436c1b7..8761cc9 100644
--- a/src/libauth/auth_proxy.c
+++ b/src/libauth/auth_proxy.c
@@ -91,6 +91,7 @@
 
 	if(auth_rpc(rpc, "authinfo", nil, 0) != ARok)
 		return nil;
+	a = nil;
 	if(convM2AI((uchar*)rpc->arg, rpc->narg, &a) == nil){
 		werrstr("bad auth info from factotum");
 		return nil;
diff --git a/src/libsunrpc/nfs3.c b/src/libsunrpc/nfs3.c
index a0180ae..ee5f985 100644
--- a/src/libsunrpc/nfs3.c
+++ b/src/libsunrpc/nfs3.c
@@ -115,7 +115,7 @@
 };
 
 void
-nfs3errstr(SunStatus status)
+nfs3errstr(Nfs3Status status)
 {
 	int i;
 
