diff --git a/src/cmd/9yacc.c b/src/cmd/9yacc.c
index 6614414..3db6768 100644
--- a/src/cmd/9yacc.c
+++ b/src/cmd/9yacc.c
@@ -614,10 +614,13 @@
 void
 error(char *s, ...)
 {
+	va_list arg;
 
 	nerrors++;
 	fprint(2, "\n fatal error:");
-	fprint(2, s, (&s)[1]);
+	va_start(arg, s);
+	vfprint(2, s, arg);
+	va_end(arg);
 	fprint(2, ", %s:%d\n", infile, lineno);
 	if(!fatfl)
 		return;
@@ -2629,7 +2632,7 @@
 		case '$':
 			break;
 		default:
-			error("bad tempfile");
+			error("bad tempfile %s", tempname);
 		}
 		break;
 	}
diff --git a/src/cmd/acid/main.c b/src/cmd/acid/main.c
index 0d1909c..f1372f8 100644
--- a/src/cmd/acid/main.c
+++ b/src/cmd/acid/main.c
@@ -52,7 +52,7 @@
 void
 main(int argc, char *argv[])
 {
-	Lsym *l;
+	Lsym *volatile l;
 	Node *n;
 	char buf[128], *s;
 	int pid, i;
@@ -173,7 +173,8 @@
 static int
 attachfiles(int argc, char **argv)
 {
-	int fd, pid;
+	int fd;
+	volatile int pid;
 	char *s;
 	int i, omode;
 	Fhdr *hdr;
diff --git a/src/cmd/acidtypes/stabs.c b/src/cmd/acidtypes/stabs.c
index 90bd1de..bd6e718 100644
--- a/src/cmd/acidtypes/stabs.c
+++ b/src/cmd/acidtypes/stabs.c
@@ -600,8 +600,9 @@
 int
 stabs2acid(Stab *stabs, Biobuf *b)
 {
-	int fno, i;
-	char c, *dir, *fn, *file, *name, *desc, *p;
+	volatile int fno, i;
+	char c, *file, *desc, *p;
+	char *volatile dir, *volatile fn, *volatile name;
 	Ftypes *f;
 	Type *t, *tt;
 	StabSym sym;
diff --git a/src/cmd/auxstats/FreeBSD.c b/src/cmd/auxstats/FreeBSD.c
index b0379f8..d881ad8 100644
--- a/src/cmd/auxstats/FreeBSD.c
+++ b/src/cmd/auxstats/FreeBSD.c
@@ -88,7 +88,6 @@
 	struct ifnet ifnet;
 	struct ifnethead ifnethead;
 	char name[16];
-	int n;
 
 	if(first)
 		return;
diff --git a/src/cmd/draw/tweak.c b/src/cmd/draw/tweak.c
index 82a22ee..6d8ee26 100644
--- a/src/cmd/draw/tweak.c
+++ b/src/cmd/draw/tweak.c
@@ -179,9 +179,9 @@
 }
 
 void
-main(int argc, char *argv[])
+main(volatile int argc, char **volatile argv)
 {
-	int i;
+	volatile int i;
 	Event e;
 	Thing *t;
 
@@ -575,7 +575,7 @@
 	Image *b;
 	Subfont *s;
 	Thing *t;
-	Dir *d;
+	Dir *volatile d;
 	jmp_buf oerr;
 	uchar buf[256];
 	char *data;
diff --git a/src/cmd/gzip/unzip.c b/src/cmd/gzip/unzip.c
index 2f7888d..70e10a1 100644
--- a/src/cmd/gzip/unzip.c
+++ b/src/cmd/gzip/unzip.c
@@ -135,7 +135,7 @@
 unztable(Biobuf *bin, char *file)
 {
 	ZipHead zh;
-	int entries;
+	int volatile entries;
 
 	entries = findCDir(bin, file);
 	if(entries < 0)
@@ -273,7 +273,7 @@
 {
 	ZipHead zh;
 	vlong off;
-	int ok, eok, entries;
+	int volatile ok, eok, entries;
 
 	entries = findCDir(bin, file);
 	if(entries < 0)
diff --git a/src/cmd/gzip/zip.c b/src/cmd/gzip/zip.c
index 0e0d6ba..63903ec 100644
--- a/src/cmd/gzip/zip.c
+++ b/src/cmd/gzip/zip.c
@@ -45,9 +45,9 @@
 }
 
 void
-main(int argc, char *argv[])
+main(int volatile argc, char **volatile argv)
 {
-	char *zfile;
+	char *volatile zfile;
 	int i, fd, err;
 
 	zfile = nil;
diff --git a/src/cmd/plumb/plumber.c b/src/cmd/plumb/plumber.c
index 6d1d9d1..a05fe61 100644
--- a/src/cmd/plumb/plumber.c
+++ b/src/cmd/plumb/plumber.c
@@ -29,7 +29,8 @@
 threadmain(int argc, char *argv[])
 {
 	char buf[512];
-	int fd, dofork;
+	int fd;
+	int volatile dofork;
 
 	progname = "plumber";
 	dofork = 1;
diff --git a/src/cmd/rc/unixcrap.c b/src/cmd/rc/unixcrap.c
index 57da10e..3a4dd2c 100644
--- a/src/cmd/rc/unixcrap.c
+++ b/src/cmd/rc/unixcrap.c
@@ -1,5 +1,6 @@
 #include <u.h>
 #include <sys/time.h>
+#include <sys/stat.h>
 #include <sys/resource.h>
 #include <libc.h>
 #include "rc.h"
@@ -174,10 +175,7 @@
 		n = strtol(argv[0], &p, 8);
 		if(*p != 0 || p == argv[0])
 			goto usage;
-		if(umask(n) < 0){
-			fprint(mapfd(2), "umask: %r\n");
-			goto out;
-		}
+		umask(n);
 		goto out;
 	}
 
diff --git a/src/cmd/sam/sam.c b/src/cmd/sam/sam.c
index 803b84e..b5b16a1 100644
--- a/src/cmd/sam/sam.c
+++ b/src/cmd/sam/sam.c
@@ -38,9 +38,9 @@
 extern int notify(void(*)(void*,char*));
 
 int
-main(int argc, char *argv[])
+main(int volatile argc, char **volatile argv)
 {
-	int i;
+	int volatile i;
 	String *t;
 	char **ap, **arg;
 
diff --git a/src/cmd/sam/shell.c b/src/cmd/sam/shell.c
index 2cac31b..ee30e5d 100644
--- a/src/cmd/sam/shell.c
+++ b/src/cmd/sam/shell.c
@@ -13,7 +13,8 @@
 {
 	long l;
 	int m;
-	int pid, fd;
+	int volatile pid;
+	int fd;
 	int retcode;
 	int pipe1[2], pipe2[2];
 
