diff --git a/common/rfb/VNCSConnectionST.h b/common/rfb/VNCSConnectionST.h
index bc6ae5b..72ffc1d 100644
--- a/common/rfb/VNCSConnectionST.h
+++ b/common/rfb/VNCSConnectionST.h
@@ -186,7 +186,7 @@
 
     unsigned baseRTT;
     unsigned congWindow;
-    int ackedOffset, sentOffset;
+    unsigned ackedOffset, sentOffset;
 
     unsigned minRTT;
     bool seenCongestion;
diff --git a/unix/tx/TXWindow.cxx b/unix/tx/TXWindow.cxx
index 1f69702..a681917 100644
--- a/unix/tx/TXWindow.cxx
+++ b/unix/tx/TXWindow.cxx
@@ -89,11 +89,11 @@
   XSetFont(dpy, defaultGC, defaultFont);
   XSelectInput(dpy, DefaultRootWindow(dpy), PropertyChangeMask);
 
-  static char dotBits[] = { 0x06, 0x0f, 0x0f, 0x06};
-  dot = XCreateBitmapFromData(dpy, DefaultRootWindow(dpy), dotBits,
+  static unsigned char dotBits[] = { 0x06, 0x0f, 0x0f, 0x06};
+  dot = XCreateBitmapFromData(dpy, DefaultRootWindow(dpy), (char*)dotBits,
                               dotSize, dotSize);
-  static char tickBits[] = { 0x80, 0xc0, 0xe2, 0x76, 0x3e, 0x1c, 0x08, 0x00};
-  tick = XCreateBitmapFromData(dpy, DefaultRootWindow(dpy), tickBits,
+  static unsigned char tickBits[] = { 0x80, 0xc0, 0xe2, 0x76, 0x3e, 0x1c, 0x08, 0x00};
+  tick = XCreateBitmapFromData(dpy, DefaultRootWindow(dpy), (char*)tickBits,
                                tickSize, tickSize);
   defaultWindowClass = rfb::strDup(defaultWindowClass_);
 }
diff --git a/vncviewer/parameters.cxx b/vncviewer/parameters.cxx
index bf39010..7cce1cd 100644
--- a/vncviewer/parameters.cxx
+++ b/vncviewer/parameters.cxx
@@ -182,7 +182,7 @@
   bool normalCharacter = true;
   size_t pos = 0;
 
-  for (int i = 0; (val[i] != '\0') && (i < (destSize - 1)); i++) {
+  for (size_t i = 0; (val[i] != '\0') && (i < (destSize - 1)); i++) {
     
     // Check for sequences which will need encoding
     if (val[i] == '\\') {
@@ -229,7 +229,7 @@
   size_t pos = 0;
   bool escapedCharacter = false;
   
-  for (int i = 0; (val[i] != '\0') && (i < (destSize - 1)); i++) {
+  for (size_t i = 0; (val[i] != '\0') && (i < (destSize - 1)); i++) {
     
     // Check for escape sequences
     if (val[i] == '\\') {
diff --git a/win/rfb_win32/SInput.cxx b/win/rfb_win32/SInput.cxx
index f634566..111a4d9 100644
--- a/win/rfb_win32/SInput.cxx
+++ b/win/rfb_win32/SInput.cxx
@@ -66,7 +66,7 @@
 };
 
 static DWORD buttonDataMapping[8] = {
-  0, 0, 0, 120, -120, 0, 0, 0
+  0, 0, 0, 120, (DWORD)-120, 0, 0, 0
 };
 
 win32::SPointer::SPointer()
