diff --git a/src/cmd/tbl/tc.c b/src/cmd/tbl/tc.c
index 841680b..6323c26 100644
--- a/src/cmd/tbl/tc.c
+++ b/src/cmd/tbl/tc.c
@@ -6,7 +6,7 @@
 {
 				/* choose funny characters to delimit fields */
 	int	had[128], ilin, icol, k;
-	unsigned char	*s;
+	char	*s;
 
 	for (icol = 0; icol < 128; icol++)
 		had[icol] = 0;
@@ -23,19 +23,19 @@
 			s = table[ilin][icol].col;
 			if (point(s))
 				while (*s)
-					had[*s++] = 1;
+					had[(unsigned char)*s++] = 1;
 			s = table[ilin][icol].rcol;
 			if (point(s))
 				while (*s)
-					had[*s++] = 1;
+					had[(unsigned char)*s++] = 1;
 		}
 	}
 				/* choose first funny character */
 	for (
 	    s = "\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz"; 
 	    *s; s++) {
-		if (had[*s] == 0) {
-			F1 = *s;
+		if (had[(unsigned char)*s] == 0) {
+			F1 = (unsigned char)*s;
 			had[F1] = 1;
 			break;
 		}
@@ -44,8 +44,8 @@
 	for (
 	    s = "\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz"; 
 	    *s; s++) {
-		if (had[*s] == 0) {
-			F2 = *s;
+		if (had[(unsigned char)*s] == 0) {
+			F2 = (unsigned char)*s;
 			break;
 		}
 	}
diff --git a/src/cmd/vac/dat.h b/src/cmd/vac/dat.h
index ec15db4..869ea7a 100644
--- a/src/cmd/vac/dat.h
+++ b/src/cmd/vac/dat.h
@@ -1,10 +1,7 @@
 typedef struct MetaBlock MetaBlock;
 typedef struct MetaEntry MetaEntry;
 
-enum
-{
-	MaxBlock	= (1UL<<31),
-};
+#define MaxBlock (1UL<<31)
 
 enum {
 	BytesPerEntry = 100,	/* estimate of bytes per dir entries - determines number of index entries in the block */
diff --git a/src/cmd/vac/vac.c b/src/cmd/vac/vac.c
index 53a66be..761310b 100644
--- a/src/cmd/vac/vac.c
+++ b/src/cmd/vac/vac.c
@@ -1,3 +1,4 @@
+#include <u.h>
 #include <sys/stat.h>
 #include "stdinc.h"
 #include "vac.h"
