diff --git a/common/rfb/CSecurityVeNCrypt.cxx b/common/rfb/CSecurityVeNCrypt.cxx
index 12eed8f..521f706 100644
--- a/common/rfb/CSecurityVeNCrypt.cxx
+++ b/common/rfb/CSecurityVeNCrypt.cxx
@@ -36,7 +36,7 @@
 using namespace rdr;
 using namespace std;
 
-CSecurityVeNCrypt::CSecurityVeNCrypt(void) : csecurityStack(NULL)
+CSecurityVeNCrypt::CSecurityVeNCrypt(void) : csecurity(NULL)
 {
   haveRecvdMajorVersion = false;
   haveRecvdMinorVersion = false;
@@ -169,7 +169,7 @@
 	case secTypeX509None:
 	case secTypeX509Vnc:
 	case secTypeX509Plain:
-	  csecurityStack = CSecurityVeNCrypt::getCSecurityStack(chosenType);
+	  csecurity = CSecurityVeNCrypt::getCSecurityStack(chosenType);
 	  break;
 
 	case secTypeInvalid:
@@ -193,7 +193,7 @@
     throw AuthFailureException("The server reported 0 VeNCrypt sub-types");
   }
 
-  return csecurityStack->processMsg(cc);
+  return csecurity->processMsg(cc);
 }
 
 CSecurityStack* CSecurityVeNCrypt::getCSecurityStack(int secType)
diff --git a/common/rfb/CSecurityVeNCrypt.h b/common/rfb/CSecurityVeNCrypt.h
index b466ba7..7280546 100644
--- a/common/rfb/CSecurityVeNCrypt.h
+++ b/common/rfb/CSecurityVeNCrypt.h
@@ -45,7 +45,7 @@
   protected:
     static CSecurityStack* getCSecurityStack(int secType);
 
-    CSecurityStack *csecurityStack;
+    CSecurity *csecurity;
     bool haveRecvdMajorVersion;
     bool haveRecvdMinorVersion;
     bool haveSentVersion;
diff --git a/common/rfb/SSecurityVeNCrypt.cxx b/common/rfb/SSecurityVeNCrypt.cxx
index 860e440..b8f9b57 100644
--- a/common/rfb/SSecurityVeNCrypt.cxx
+++ b/common/rfb/SSecurityVeNCrypt.cxx
@@ -62,7 +62,7 @@
 
 SSecurityVeNCrypt::SSecurityVeNCrypt(void)
 {
-  ssecurityStack = NULL;
+  ssecurity = NULL;
   haveSentVersion = false;
   haveRecvdMajorVersion = false;
   haveRecvdMinorVersion = false;
@@ -186,7 +186,7 @@
     case secTypeX509None:
     case secTypeX509Vnc:
     case secTypeX509Plain:
-      ssecurityStack = SSecurityVeNCrypt::getSSecurityStack(chosenType);
+      ssecurity = SSecurityVeNCrypt::getSSecurityStack(chosenType);
 	break;  
     case secTypeInvalid:
     case secTypeVeNCrypt: /* This would cause looping */
@@ -197,7 +197,7 @@
   }
 
   /* continue processing the messages */
-  return ssecurityStack->processMsg(sc);
+  return ssecurity->processMsg(sc);
 }
 
 SSecurityStack* SSecurityVeNCrypt::getSSecurityStack(int secType)
diff --git a/common/rfb/SSecurityVeNCrypt.h b/common/rfb/SSecurityVeNCrypt.h
index bedb6e2..fb24bdb 100644
--- a/common/rfb/SSecurityVeNCrypt.h
+++ b/common/rfb/SSecurityVeNCrypt.h
@@ -65,7 +65,7 @@
   protected:
     static SSecurityStack* getSSecurityStack(int secType);
 
-    SSecurityStack *ssecurityStack;
+    SSecurity *ssecurity;
     bool haveSentVersion, haveRecvdMajorVersion, haveRecvdMinorVersion;
     bool haveSentTypes, haveChosenType;
     rdr::U8 majorVersion, minorVersion, numTypes;
