Index: src/last.c
===================================================================
--- src/last.c	(revision 290)
+++ src/last.c	(working copy)
@@ -320,7 +320,7 @@
 	 *
 	 *	Ugly.
 	 */
-	if (a[0] == 0 && a[1] == 0 && a[2] == htonl (0xffff))
+	if (a[0] == 0 && a[1] == 0 && a[2] == (int32_t)htonl (0xffff))
 		mapped = 1;
 	topnibble = ntohl((unsigned int)a[0]) >> 28;
 	if (topnibble < 2 || topnibble > 3 || mapped ||
@@ -436,7 +436,7 @@
 		r = dns_lookup(domain, sizeof(domain), useip, p->ut_addr_v6);
 	if (r < 0) {
 		len = UT_HOSTSIZE;
-		if (len >= sizeof(domain)) len = sizeof(domain) - 1;
+		if (len >= (int)sizeof(domain)) len = sizeof(domain) - 1;
 		domain[0] = 0;
 		strncat(domain, p->ut_host, len);
 	}
Index: src/init.c
===================================================================
--- src/init.c	(revision 290)
+++ src/init.c	(working copy)
@@ -561,7 +561,8 @@
 	 *	Find out which process(es) this was (were)
 	 */
 	while((pid = waitpid(-1, &st, WNOHANG)) != 0) {
-		if (errno == ECHILD) break;
+		if (errno == ECHILD)
+			break;
 		for( ch = family; ch; ch = ch->next )
 			if ( ch->pid == pid && (ch->flags & RUNNING) ) {
 				INITDBG(L_VB,
@@ -576,9 +577,10 @@
 				}
 				break;
 			}
-		if (ch == NULL)
+		if (ch == NULL) {
 			INITDBG(L_VB, "chld_handler: unknown child %d exited.",
 				pid);
+		}
 	}
 	errno = saved_errno;
 }
@@ -1237,7 +1239,7 @@
 	strncpy(ch->id, id, sizeof(utproto.ut_id) + 1); /* Hack for different libs. */
 	strncpy(ch->process, process, sizeof(ch->process) - 1);
 	if (rlevel[0]) {
-		for(f = 0; f < sizeof(rlevel) - 1 && rlevel[f]; f++) {
+		for(f = 0; f < (int)sizeof(rlevel)-1 && rlevel[f]; f++) {
 			ch->rlevel[f] = rlevel[f];
 			if (ch->rlevel[f] == 's') ch->rlevel[f] = 'S';
 		}
Index: src/bootlogd.c
===================================================================
--- src/bootlogd.c	(revision 290)
+++ src/bootlogd.c	(working copy)
@@ -123,7 +123,7 @@
 		fprintf(stderr, "bootlogd: cannot find console device "
 			"%d:%d in /dev\n", major(dev), minor(dev));
 		r = -1;
-	} else if (strlen(ent->d_name) + 5 >= rlen) {
+	} else if ((int)strlen(ent->d_name) + 5 >= rlen) {
 		fprintf(stderr, "bootlogd: console device name too long\n");
 		r = -1;
 	} else
@@ -341,7 +341,7 @@
 				break;
 			case '\t':
 				line.pos += (line.pos / 8 + 1) * 8;
-				if (line.pos >= sizeof(line.buf))
+				if (line.pos >= (int)sizeof(line.buf))
 					line.pos = sizeof(line.buf) - 1;
 				break;
 			case  32 ... 127:
@@ -357,7 +357,7 @@
 		len--;
 
 		tlen = strlen(tmp);
-		if (tlen && (line.pos + tlen < sizeof(line.buf))) {
+		if (tlen && (line.pos + tlen < (int)sizeof(line.buf))) {
 			memcpy(line.buf + line.pos, tmp, tlen);
 			line.pos += tlen;
 		}
@@ -609,7 +609,7 @@
 		else
 			todo = endptr - outptr;
 		if (fp && todo)
-			writelog(fp, outptr, todo);
+			writelog(fp, (unsigned char *)outptr, todo);
 	}
 
 	if (fp) {
Index: src/shutdown.c
===================================================================
--- src/shutdown.c	(revision 290)
+++ src/shutdown.c	(working copy)
@@ -141,7 +141,7 @@
 	nl = strlen(name);
 	vl = value ? strlen(value) : 0;
 
-	if (nl + vl + 3 >= sizeof(request.i.data))
+	if (nl + vl + 3 >= (int)sizeof(request.i.data))
 		return -1;
 
 	memcpy(request.i.data, name, nl);
Index: src/sulogin.c
===================================================================
--- src/sulogin.c	(revision 290)
+++ src/sulogin.c	(working copy)
@@ -275,7 +275,7 @@
 	if (read(0, pass, sizeof(pass) - 1) <= 0)
 		ret = NULL;
 	else {
-		for(i = 0; i < sizeof(pass) && pass[i]; i++)
+		for(i = 0; i < (int)sizeof(pass) && pass[i]; i++)
 			if (pass[i] == '\r' || pass[i] == '\n') {
 				pass[i] = 0;
 				break;
