diff --git a/src/cmd/9660/dump9660.c b/src/cmd/9660/dump9660.c
index 320e56d..95bba37 100644
--- a/src/cmd/9660/dump9660.c
+++ b/src/cmd/9660/dump9660.c
@@ -201,7 +201,7 @@
 		checknames(&iroot, isbadiso9660);
 		convertnames(&iroot, struprcpy);
 	} else
-		convertnames(&iroot, (void *) strcpy);
+		convertnames(&iroot, (char* (*)(char*, char*))strcpy);
 
 //	isoabstract = findconform(&iroot, abstract);
 //	isobiblio = findconform(&iroot, biblio);
@@ -215,7 +215,7 @@
 	//	jnotice = findconform(&jroot, notice);
 
 		checknames(&jroot, isbadjoliet);
-		convertnames(&jroot, (void *) strcpy);
+		convertnames(&jroot, (char* (*)(char*, char*))strcpy);
 		dsort(&jroot, jolietcmp);
 	}
 
@@ -301,14 +301,14 @@
 		 * Write dump tree at end.  We assume the name characters
 		 * are all conforming, so everything is already sorted properly.
 		 */
-		convertnames(&idumproot, (info.flags & CDconform) ? (void *) struprcpy : (void *) strcpy);
+		convertnames(&idumproot, (info.flags & CDconform) ? struprcpy : (char* (*)(char*, char*)) strcpy);
 		if(cd->nulldump) {
 			r = walkdirec(&idumproot, dumpname);
 			assert(r != nil);
 			copybutname(r, &iroot);
 		}
 		if(cd->flags & CDjoliet) {
-			convertnames(&jdumproot, (void *) strcpy);
+			convertnames(&jdumproot, (char* (*)(char*, char*))strcpy);
 			if(cd->nulldump) {
 				r = walkdirec(&jdumproot, dumpname);
 				assert(r != nil);
diff --git a/src/cmd/9660/unix.c b/src/cmd/9660/unix.c
index 99332af..f060c10 100644
--- a/src/cmd/9660/unix.c
+++ b/src/cmd/9660/unix.c
@@ -41,7 +41,7 @@
 		//xd->symlink = atom(d->symlink);
 		xd->symlink = atom("symlink");		// XXX: rsc
 	}
-};
+}
 
 void
 fdtruncate(int fd, ulong size)
diff --git a/src/cmd/9term/SunOS.c b/src/cmd/9term/SunOS.c
index 12f64b8..4c85918 100644
--- a/src/cmd/9term/SunOS.c
+++ b/src/cmd/9term/SunOS.c
@@ -67,7 +67,7 @@
 	if(debug) fprint(2, "israw %c%c\n",
 		ttmode.c_lflag&ICANON ? 'c' : '-',
 		ttmode.c_lflag&ECHO ? 'e' : '-');
-	return (ttmode.c_lflag&(ICANON|ECHO));
+	return (ttmode.c_lflag&ICANON && ttmode.c_lflags&ECHO);
 }
 
 int
diff --git a/src/libip/eipfmt.c b/src/libip/eipfmt.c
index 8333225..b3fc44c 100644
--- a/src/libip/eipfmt.c
+++ b/src/libip/eipfmt.c
@@ -7,6 +7,9 @@
 	Isprefix= 16,
 };
 
+// XXX: manually initialize once to placate the Sun monster
+uchar prefixvals[256];
+#ifdef NOTDEF
 uchar prefixvals[256] =
 {
 [0x00] 0 | Isprefix,
@@ -19,6 +22,7 @@
 [0xFE] 7 | Isprefix,
 [0xFF] 8 | Isprefix,
 };
+#endif
 
 int
 eipfmt(Fmt *f)
@@ -31,6 +35,22 @@
 	ushort s;
 	int i, j, n, eln, eli;
 
+	static int once = 0;	// XXX: placate the Sun monster
+
+	if(!once){
+		once = 1;
+		memset(prefixvals, 0, sizeof(prefixvals));
+		prefixvals[0x00] = 0 | Isprefix;
+		prefixvals[0x80] = 1 | Isprefix;
+		prefixvals[0xC0] = 2 | Isprefix;
+		prefixvals[0xE0] = 3 | Isprefix;
+		prefixvals[0xF0] = 4 | Isprefix;
+		prefixvals[0xF8] = 5 | Isprefix;
+		prefixvals[0xFC] = 6 | Isprefix;
+		prefixvals[0xFE] = 7 | Isprefix;
+		prefixvals[0xFF] = 8 | Isprefix;
+	}
+
 	switch(f->r) {
 	case 'E':		/* Ethernet address */
 		p = va_arg(f->args, uchar*);
