diff --git a/common/rfb/CConnection.cxx b/common/rfb/CConnection.cxx
index ac3c35e..b239325 100644
--- a/common/rfb/CConnection.cxx
+++ b/common/rfb/CConnection.cxx
@@ -33,7 +33,7 @@
 
 CConnection::CConnection()
   : csecurity(0), is(0), os(0), reader_(0), writer_(0),
-    shared(false), nSecTypes(0), clientSecTypeOrder(false),
+    shared(false), nSecTypes(0),
     state_(RFBSTATE_UNINITIALISED), useProtocol3_3(false)
 {
   security = new Security();
@@ -66,10 +66,6 @@
   secTypes[nSecTypes++] = secType;
 }
 
-void CConnection::setClientSecTypeOrder(bool clientOrder) {
-  clientSecTypeOrder = clientOrder;
-}
-
 void CConnection::initialiseProtocol()
 {
   state_ = RFBSTATE_PROTOCOL_VERSION;
@@ -170,7 +166,7 @@
       // If we are using the client's preference for types,
       // we keep trying types, to find the one that matches and
       // which appears first in the client's list of supported types.
-      if (secType == secTypeInvalid || clientSecTypeOrder) {
+      if (secType == secTypeInvalid) {
         for (int j = 0; j < nSecTypes; j++) {
           if (secTypes[j] == serverSecType && j < secTypePos) {
             secType = secTypes[j];
diff --git a/common/rfb/CConnection.h b/common/rfb/CConnection.h
index 6d3783a..5ee681d 100644
--- a/common/rfb/CConnection.h
+++ b/common/rfb/CConnection.h
@@ -64,12 +64,6 @@
     // first one is most preferred.
     void addSecType(rdr::U8 secType);
 
-    // setClientSecTypeOrder() determines whether the client should obey
-    // the server's security type preference, by picking the first server security
-    // type that the client supports, or whether it should pick the first type
-    // that the server supports, from the client-supported list of types.
-    void setClientSecTypeOrder(bool clientOrder);
-
     // setShared sets the value of the shared flag which will be sent to the
     // server upon initialisation.
     void setShared(bool s) { shared = s; }
@@ -166,7 +160,6 @@
     enum { maxSecTypes = 8 };
     int nSecTypes;
     rdr::U8 secTypes[maxSecTypes];
-    bool clientSecTypeOrder;
     stateEnum state_;
 
     CharArray serverName;
