diff --git a/src/encode/lzh.c b/src/encode/lzh.c
index d1b2d507987b1cdfaa69e93a523c2a57782e37cd..a7bb551221d4bf928f85fc68549ef1dc00e37a5a 100644
--- a/src/encode/lzh.c
+++ b/src/encode/lzh.c
@@ -588,7 +588,7 @@ short int lzh_decode_position(uchar *inbuf, long *incnt, long inlen)
 	while (j--) {
 		i = (i << 1) + lzh_getbit(inbuf,incnt,inlen);
 	}
-	return c | i & 0x3f;
+	return c | (i & 0x3f);
 }
 
 /* Compression */
diff --git a/src/sbbs3/chksmb.c b/src/sbbs3/chksmb.c
index c449018ba536d8685bbabc598061cd824f91dfdf..a258770d06811b787da5d05ca66539fcab61630b 100644
--- a/src/sbbs3/chksmb.c
+++ b/src/sbbs3/chksmb.c
@@ -40,6 +40,7 @@
 #include <stdlib.h>		/* exit */
 #include <string.h>		/* strrchr */
 #include <time.h>		/* ctime */
+#include <ctype.h>		/* toupper */
 
 /* SMB-specific */
 #include "smblib.h"
diff --git a/src/sbbs3/node.c b/src/sbbs3/node.c
index 48f301ca225318f186f6f47afed2e2ffaa788343..9f3e5f36353657c15318bf0d569fde0833f92668 100644
--- a/src/sbbs3/node.c
+++ b/src/sbbs3/node.c
@@ -46,6 +46,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <errno.h>
+#include <ctype.h>		/* isdigit */
 
 /* Synchronet-specific */
 #include "sbbsdefs.h"
diff --git a/src/sbbs3/readmail.cpp b/src/sbbs3/readmail.cpp
index 8e8c4ae6907768e8c92c60a71cf7319e399fa48a..77f61e4f1d70d28e04b4d669e9715902bb25564a 100644
--- a/src/sbbs3/readmail.cpp
+++ b/src/sbbs3/readmail.cpp
@@ -131,7 +131,7 @@ void sbbs_t::readmail(uint usernumber, int which)
 			bprintf(text[StartWithN],1L);
 			if((long)(curmsg=getnum(msgs))>0)
 				curmsg--;
-			else if(curmsg==-1) {
+			else if((long)curmsg==-1) {
 				FREE(mail);
 				smb_close(&smb);
 				smb_stack(&smb,SMB_STACK_POP);
@@ -577,10 +577,10 @@ void sbbs_t::readmail(uint usernumber, int which)
 				break;
 			case '[':   /* Search To User backward */
 				strcpy(str,msg.to);
-				for(i=curmsg-1;(ulong)i>-1;i--)
+				for(i=curmsg-1;i>-1;i--)
 					if(mail[i].to==msg.idx.to)
 						break;
-				if((ulong)i>-1)
+				if(i>-1)
 					curmsg=i;
 				else
 					domsg=0;
diff --git a/src/sbbs3/smbutil.c b/src/sbbs3/smbutil.c
index b93ffbcaf2b1f19c896378dbb4acc7813bc76e35..bb850aaaa5665969decc78a0b6f245efabb1e040 100644
--- a/src/sbbs3/smbutil.c
+++ b/src/sbbs3/smbutil.c
@@ -52,9 +52,10 @@
 
 /* ANSI */
 #include <stdio.h>
-#include <time.h>	/* time */
-#include <errno.h>	/* errno */
-#include <string.h>	/* strrchr */
+#include <time.h>		/* time */
+#include <errno.h>		/* errno */
+#include <string.h>		/* strrchr */
+#include <ctype.h>		/* toupper */
 
 #include "genwrap.h"	/* stricmp */
 #include "dirwrap.h"	/* fexist */