I just hate to be pushed around by some @#$%^& machine.
diff --git a/src/cmd/calendar.c b/src/cmd/calendar.c
index ba86ab3..778c760 100644
--- a/src/cmd/calendar.c
+++ b/src/cmd/calendar.c
@@ -174,7 +174,7 @@
 upper2lower(char *to, char *from, int len)
 {
 	while(--len>0 && *from!='\0')
-		*to++ = tolower(*from++);
+		*to++ = tolower((uchar)*from++);
 	*to = 0;
 }
 
diff --git a/src/cmd/fmt.c b/src/cmd/fmt.c
index e43731e..59c1413 100644
--- a/src/cmd/fmt.c
+++ b/src/cmd/fmt.c
@@ -175,7 +175,7 @@
 	n = strlen(s);
 	if(n < 2)
 		return 1;
-	if(isupper(s[0]) && n < 4)
+	if(isupper((uchar)s[0]) && n < 4)
 		return 1;
 	if(strchr(".!?", s[n-1]) != nil)
 		return 2;
diff --git a/src/cmd/hget.c b/src/cmd/hget.c
index 8fa1432..1cd11ab 100644
--- a/src/cmd/hget.c
+++ b/src/cmd/hget.c
@@ -712,7 +712,7 @@
 			tm.mon = 5;
 	} else {
 		for(p = month; *p; p++)
-			*p = tolower(*p);
+			*p = tolower((uchar)*p);
 		for(i = 0; i < 12; i++)
 			if(strncmp(&monthchars[i*3], month, 3) == 0){
 				tm.mon = i;
@@ -732,7 +732,7 @@
 				tm.sec = strtoul(p, &p, 10);
 			}
 		}
-		if(tolower(*p) == 'p')
+		if(tolower((uchar)*p) == 'p')
 			tm.hour += 12;
 	}
 
@@ -1129,7 +1129,7 @@
 	p = strchr(msg, '(');
 	if(p == nil){
 		for(p = msg+3; *p; p++)
-			if(isdigit(*p))
+			if(isdigit((uchar)*p))
 				break;
 	} else
 		p++;
@@ -1253,7 +1253,7 @@
 cistrncmp(char *a, char *b, int n)
 {
 	while(n-- > 0){
-		if(tolower(*a++) != tolower(*b++))
+		if(tolower((uchar)*a++) != tolower((uchar)*b++))
 			return -1;
 	}
 	return 0;
diff --git a/src/cmd/join.c b/src/cmd/join.c
index 1739ef5..9ce127f 100644
--- a/src/cmd/join.c
+++ b/src/cmd/join.c
@@ -355,7 +355,7 @@
 			break;
 		case '1':
 		case '2':
-			if(s[1] == '.' && isdigit(s[2])) {
+			if(s[1] == '.' && isdigit((uchar)s[2])) {
 				olistf[no] = *s=='1'? F1: F2;
 				olist[no] = atoi(s += 2);
 				break;
diff --git a/src/cmd/split.c b/src/cmd/split.c
index c4025e2..e758786 100644
--- a/src/cmd/split.c
+++ b/src/cmd/split.c
@@ -166,7 +166,7 @@
 		fline = realloc(fline,n+1);
 		linesize = n+1;
 	}
-	for(t=fline; *t++ = tolower(*s++); )
+	for(t=fline; *t++ = tolower((uchar)*s++); )
 		continue;
 		/* we assume the 'A'-'Z' only appear as themselves
 		 * in a utf encoding.
diff --git a/src/cmd/tail.c b/src/cmd/tail.c
index db29986..b40552b 100644
--- a/src/cmd/tail.c
+++ b/src/cmd/tail.c
@@ -331,7 +331,7 @@
 {
 	if(*s=='-' || *s=='+')
 		s++;
-	if(!isdigit(*s))
+	if(!isdigit((uchar)*s))
 		return 0;
 	if(s[-1] == '+')
 		origin = BEG;
@@ -340,7 +340,7 @@
 	count = atol(s);
 
 	/* check range of count */
-	if(count < 0 ||	(int)count != count)
+	if(count < 0 || (int)count != count)
 		fatal("too big");
 	return 1;
 }	
diff --git a/src/cmd/uniq.c b/src/cmd/uniq.c
index 122fb5e..88fb928 100644
--- a/src/cmd/uniq.c
+++ b/src/cmd/uniq.c
@@ -34,7 +34,7 @@
 	f = 0;
 	while(argc > 1) {
 		if(*argv[1] == '-') {
-			if(isdigit(argv[1][1]))
+			if(isdigit((uchar)argv[1][1]))
 				fields = atoi(&argv[1][1]);
 			else
 				mode = argv[1][1];