diff --git a/common/rfb/CMsgHandler.cxx b/common/rfb/CMsgHandler.cxx
index ce8b271..11c979a 100644
--- a/common/rfb/CMsgHandler.cxx
+++ b/common/rfb/CMsgHandler.cxx
@@ -38,13 +38,13 @@
   cp.height = height;
 }
 
-void CMsgHandler::setExtendedDesktopSize(int reason, int result,
+void CMsgHandler::setExtendedDesktopSize(unsigned reason, unsigned result,
                                          int width, int height,
                                          const ScreenSet& layout)
 {
   cp.supportsSetDesktopSize = true;
 
-  if ((reason == (signed)reasonClient) && (result != (signed)resultSuccess))
+  if ((reason == reasonClient) && (result != resultSuccess))
     return;
 
   if (!layout.validate(width, height))
diff --git a/common/rfb/CMsgHandler.h b/common/rfb/CMsgHandler.h
index 5e333d2..7d2cdc2 100644
--- a/common/rfb/CMsgHandler.h
+++ b/common/rfb/CMsgHandler.h
@@ -46,7 +46,7 @@
     // methods to set the members of cp appropriately.
 
     virtual void setDesktopSize(int w, int h);
-    virtual void setExtendedDesktopSize(int reason, int result,
+    virtual void setExtendedDesktopSize(unsigned reason, unsigned result,
                                         int w, int h,
                                         const ScreenSet& layout);
     virtual void setCursor(int width, int height, const Point& hotspot,
diff --git a/vncviewer/CConn.cxx b/vncviewer/CConn.cxx
index 5935c17..ab5c9cc 100644
--- a/vncviewer/CConn.cxx
+++ b/vncviewer/CConn.cxx
@@ -313,8 +313,8 @@
 }
 
 // setExtendedDesktopSize() is a more advanced version of setDesktopSize()
-void CConn::setExtendedDesktopSize(int reason, int result, int w, int h,
-                                   const rfb::ScreenSet& layout)
+void CConn::setExtendedDesktopSize(unsigned reason, unsigned result,
+                                   int w, int h, const rfb::ScreenSet& layout)
 {
   CConnection::setExtendedDesktopSize(reason, result, w, h, layout);
 
diff --git a/vncviewer/CConn.h b/vncviewer/CConn.h
index 709ca2f..1b92937 100644
--- a/vncviewer/CConn.h
+++ b/vncviewer/CConn.h
@@ -51,8 +51,8 @@
   void serverInit();
 
   void setDesktopSize(int w, int h);
-  void setExtendedDesktopSize(int reason, int result, int w, int h,
-                              const rfb::ScreenSet& layout);
+  void setExtendedDesktopSize(unsigned reason, unsigned result,
+                              int w, int h, const rfb::ScreenSet& layout);
 
   void setName(const char* name);
 
