diff --git a/cli-runopts.c b/cli-runopts.c
index ab25d3718042b0b81c89505b8be6c4523c2c3dbe..8d1edeeb832598af488318c5c5de57d5881f4c4f 100644
--- a/cli-runopts.c
+++ b/cli-runopts.c
@@ -538,7 +538,7 @@ multihop_passthrough_args() {
 
 	if (opts.recv_window != DEFAULT_RECV_WINDOW)
 	{
-		int written = snprintf(ret+total, len-total, "-W %d ", opts.recv_window);
+		int written = snprintf(ret+total, len-total, "-W %u ", opts.recv_window);
 		total += written;
 	}
 
diff --git a/cli-tcpfwd.c b/cli-tcpfwd.c
index fec5dbaaef89f7f790bfedb636641a0bb83b4d82..b32d9e07ecd8bace1c491470c7736e426d69f199 100644
--- a/cli-tcpfwd.c
+++ b/cli-tcpfwd.c
@@ -273,7 +273,7 @@ static int newtcpforwarded(struct Channel * channel) {
 		goto out;
 	}
 	
-	snprintf(portstring, sizeof(portstring), "%d", fwd->connectport);
+	snprintf(portstring, sizeof(portstring), "%u", fwd->connectport);
 	channel->conn_pending = connect_remote(fwd->connectaddr, portstring, channel_connect_done, channel);
 
 	channel->prio = DROPBEAR_CHANNEL_PRIO_UNKNOWABLE;
diff --git a/svr-session.c b/svr-session.c
index f777b5f3ae566b7a065adb49ebb7056cbc659a6d..254a747e6beb901628070c1e9006fc4af64dc50a 100644
--- a/svr-session.c
+++ b/svr-session.c
@@ -160,7 +160,7 @@ void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
 	} else if (ses.authstate.pw_name) {
 		/* we have a potential user */
 		snprintf(fmtbuf, sizeof(fmtbuf), 
-				"Exit before auth (user '%s', %d fails): %s",
+				"Exit before auth (user '%s', %u fails): %s",
 				ses.authstate.pw_name, ses.authstate.failcount, format);
 	} else {
 		/* before userauth */
diff --git a/svr-tcpfwd.c b/svr-tcpfwd.c
index d2f142711022ac05adb559c42b0987e418c285c3..9d051bfe9231f084b0d384f04e70019f53cfb9ac 100644
--- a/svr-tcpfwd.c
+++ b/svr-tcpfwd.c
@@ -269,7 +269,7 @@ static int newtcpdirect(struct Channel * channel) {
 		goto out;
 	}
 
-	snprintf(portstring, sizeof(portstring), "%d", destport);
+	snprintf(portstring, sizeof(portstring), "%u", destport);
 	channel->conn_pending = connect_remote(desthost, portstring, channel_connect_done, channel);
 
 	channel->prio = DROPBEAR_CHANNEL_PRIO_UNKNOWABLE;
diff --git a/svr-x11fwd.c b/svr-x11fwd.c
index 144ec0b00c89b2fc664255d8a01d6197a971ac55..9e7df244f2fb774773e453180e432970999244cf 100644
--- a/svr-x11fwd.c
+++ b/svr-x11fwd.c
@@ -142,7 +142,7 @@ void x11setauth(struct ChanSess *chansess) {
 	}
 
 	/* create the DISPLAY string */
-	val = snprintf(display, sizeof(display), "localhost:%d.%d",
+	val = snprintf(display, sizeof(display), "localhost:%d.%u",
 			chansess->x11port - X11BASEPORT, chansess->x11screennum);
 	if (val < 0 || val >= (int)sizeof(display)) {
 		/* string was truncated */
@@ -152,7 +152,7 @@ void x11setauth(struct ChanSess *chansess) {
 	addnewvar("DISPLAY", display);
 
 	/* create the xauth string */
-	val = snprintf(display, sizeof(display), "unix:%d.%d",
+	val = snprintf(display, sizeof(display), "unix:%d.%u",
 			chansess->x11port - X11BASEPORT, chansess->x11screennum);
 	if (val < 0 || val >= (int)sizeof(display)) {
 		/* string was truncated */
diff --git a/tcp-accept.c b/tcp-accept.c
index 445692026ec8c331444c3c01861b8261e6670d1a..f1f51a7dbc17b699d4a303621b4575dd5bc17515 100644
--- a/tcp-accept.c
+++ b/tcp-accept.c
@@ -121,7 +121,7 @@ int listen_tcpfwd(struct TCPListener* tcpinfo) {
 	TRACE(("enter listen_tcpfwd"))
 
 	/* first we try to bind, so don't need to do so much cleanup on failure */
-	snprintf(portstring, sizeof(portstring), "%d", tcpinfo->listenport);
+	snprintf(portstring, sizeof(portstring), "%u", tcpinfo->listenport);
 
 	nsocks = dropbear_listen(tcpinfo->listenaddr, portstring, socks, 
 			DROPBEAR_MAX_SOCKS, &errstring, &ses.maxfd);