diff --git a/common/rfb/CSecurityNone.h b/common/rfb/CSecurityNone.h
index 54c1016..a7db6e0 100644
--- a/common/rfb/CSecurityNone.h
+++ b/common/rfb/CSecurityNone.h
@@ -22,6 +22,7 @@
 #ifndef __CSECURITYNONE_H__
 #define __CSECURITYNONE_H__
 
+#include <rfb/Security.h>
 #include <rfb/CSecurity.h>
 
 namespace rfb {
diff --git a/common/rfb/Security.cxx b/common/rfb/Security.cxx
index adc21c9..daf3ac5 100644
--- a/common/rfb/Security.cxx
+++ b/common/rfb/Security.cxx
@@ -21,6 +21,8 @@
 #ifdef _WIN32
 #define strcasecmp _stricmp
 #endif
+#include <rfb/CSecurityNone.h>
+#include <rfb/CSecurityVncAuth.h>
 #include <rdr/Exception.h>
 #include <rfb/LogWriter.h>
 #include <rfb/Security.h>
@@ -39,7 +41,7 @@
  "Specify which security scheme to use (None, VncAuth)",
  "VncAuth");
 
-Security::Security(void)
+Security::Security(void) : upg(NULL)
 {
   char *secTypesStr = secTypes.getData();
 
@@ -78,9 +80,22 @@
   switch (secType) {
   case secTypeNone: return new SSecurityNone();
   case secTypeVncAuth: return new SSecurityVncAuth();
-  default:
-    vlog.error("Undefined security type %d, aborting");
-    abort();
+  }
+
+bail:
+  throw Exception("Security type not supported");
+}
+
+CSecurity* Security::GetCSecurity(rdr::U8 secType)
+{
+  assert (upg != NULL); /* (upg == NULL) means bug in the viewer */
+
+  if (!IsSupported(secType))
+    goto bail;
+
+  switch (secType) {
+  case secTypeNone: return new CSecurityNone();
+  case secTypeVncAuth: return new CSecurityVncAuth(upg);
   }
 
 bail:
diff --git a/common/rfb/Security.h b/common/rfb/Security.h
index cb49911..edbcd44 100644
--- a/common/rfb/Security.h
+++ b/common/rfb/Security.h
@@ -24,7 +24,9 @@
 
 #include <rdr/types.h>
 #include <rfb/Configuration.h>
+#include <rfb/CSecurity.h>
 #include <rfb/SSecurity.h>
+#include <rfb/UserPasswdGetter.h>
 
 #include <list>
 
@@ -51,7 +53,9 @@
 
   class Security {
   public:
-    /* Create Security instance */
+    /*
+     * Create Security instance.
+     */
     Security(void);
 
     /* Enable/Disable certain security type */
@@ -68,7 +72,16 @@
     /* Create server side SSecurity class instance */
     SSecurity* GetSSecurity(rdr::U8 secType);
 
+    /* Create client side CSecurity class instance */
+    CSecurity* GetCSecurity(rdr::U8 secType);
+
     static StringParameter secTypes;
+
+    /*
+     * Use variable directly instead of dumb get/set methods. It is used
+     * only in viewer-side code and MUST be set by viewer.
+     */
+    UserPasswdGetter *upg;
   private:
     std::list<rdr::U8> enabledSecTypes;
   };
