diff --git a/common/rfb/ConnParams.h b/common/rfb/ConnParams.h
index 0b8a89c..9e647ba 100644
--- a/common/rfb/ConnParams.h
+++ b/common/rfb/ConnParams.h
@@ -56,14 +56,14 @@
     void setVersion(int major, int minor) {
       majorVersion = major; minorVersion = minor;
     }
-    bool isVersion(int major, int minor) {
+    bool isVersion(int major, int minor) const {
       return majorVersion == major && minorVersion == minor;
     }
-    bool beforeVersion(int major, int minor) {
+    bool beforeVersion(int major, int minor) const {
       return (majorVersion < major ||
               (majorVersion == major && minorVersion < minor));
     }
-    bool afterVersion(int major, int minor) {
+    bool afterVersion(int major, int minor) const {
       return !beforeVersion(major,minor+1);
     }
 
@@ -71,16 +71,16 @@
     int height;
     ScreenSet screenLayout;
 
-    const PixelFormat& pf() { return pf_; }
+    const PixelFormat& pf() const { return pf_; }
     void setPF(const PixelFormat& pf);
 
-    const char* name() { return name_; }
+    const char* name() const { return name_; }
     void setName(const char* name);
 
-    const Cursor& cursor() { return cursor_; }
+    const Cursor& cursor() const { return cursor_; }
     void setCursor(const Cursor& cursor);
 
-    bool supportsEncoding(rdr::S32 encoding);
+    bool supportsEncoding(rdr::S32 encoding) const;
 
     void setEncodings(int nEncodings, const rdr::S32* encodings);
 
