diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx
index a8abeeb..30de37e 100644
--- a/common/rfb/CSecurityTLS.cxx
+++ b/common/rfb/CSecurityTLS.cxx
@@ -63,8 +63,8 @@
 
 using namespace rfb;
 
-StringParameter CSecurityTLS::x509ca("x509ca", "X509 CA certificate", "", ConfViewer);
-StringParameter CSecurityTLS::x509crl("x509crl", "X509 CRL file", "", ConfViewer);
+StringParameter CSecurityTLS::X509CA("X509CA", "X509 CA certificate", "", ConfViewer);
+StringParameter CSecurityTLS::X509CRL("X509CRL", "X509 CRL file", "", ConfViewer);
 
 static LogWriter vlog("TLS");
 static LogWriter vlog_raw("RawTLS");
@@ -94,8 +94,8 @@
 CSecurityTLS::CSecurityTLS(bool _anon) : session(0), anon_cred(0),
 						 anon(_anon), fis(0), fos(0)
 {
-  cafile = x509ca.getData();
-  crlfile = x509crl.getData();
+  cafile = X509CA.getData();
+  crlfile = X509CRL.getData();
 }
 
 void CSecurityTLS::setDefaults()
@@ -115,9 +115,9 @@
   delete [] homeDir;
 
  if (!fileexists(caDefault.buf))
-   x509ca.setDefaultStr(strdup(caDefault.buf));
+   X509CA.setDefaultStr(strdup(caDefault.buf));
  if (!fileexists(crlDefault.buf))
-   x509crl.setDefaultStr(strdup(crlDefault.buf));
+   X509CRL.setDefaultStr(strdup(crlDefault.buf));
 }
 
 void CSecurityTLS::shutdown(bool needbye)
diff --git a/common/rfb/CSecurityTLS.h b/common/rfb/CSecurityTLS.h
index c19307e..f5f10e4 100644
--- a/common/rfb/CSecurityTLS.h
+++ b/common/rfb/CSecurityTLS.h
@@ -50,8 +50,8 @@
       { return anon ? "TLS Encryption without VncAuth" : "X509 Encryption without VncAuth"; }
     static void setDefaults();
 
-    static StringParameter x509ca;
-    static StringParameter x509crl;
+    static StringParameter X509CA;
+    static StringParameter X509CRL;
     static UserMsgBox *msg;
 
   protected:
diff --git a/common/rfb/SSecurityTLS.cxx b/common/rfb/SSecurityTLS.cxx
index 7a1a41e..a40ec13 100644
--- a/common/rfb/SSecurityTLS.cxx
+++ b/common/rfb/SSecurityTLS.cxx
@@ -39,10 +39,10 @@
 using namespace rfb;
 
 StringParameter SSecurityTLS::X509_CertFile
-("x509cert", "specifies path to the x509 certificate in PEM format", "", ConfServer);
+("X509Cert", "Path to the X509 certificate in PEM format", "", ConfServer);
 
 StringParameter SSecurityTLS::X509_KeyFile
-("x509key", "specifies path to the key of the x509 certificate in PEM format", "", ConfServer);
+("X509Key", "Path to the key of the X509 certificate in PEM format", "", ConfServer);
 
 static LogWriter vlog("TLS");
 static LogWriter vlog_raw("RawTLS");
diff --git a/common/rfb/UnixPasswordValidator.cxx b/common/rfb/UnixPasswordValidator.cxx
index 5a3996d..d096079 100644
--- a/common/rfb/UnixPasswordValidator.cxx
+++ b/common/rfb/UnixPasswordValidator.cxx
@@ -31,8 +31,10 @@
 
 using namespace rfb;
 
-static StringParameter pam_service
-  ("pam_service", "service name for pam password validation", "vnc");
+static StringParameter pamService
+  ("PAMService", "Service name for PAM password validation", "vnc");
+AliasParameter pam_service("pam_service", "Alias for PAMService",
+                           &pamService);
 
 int do_pam_auth(const char *service, const char *username,
 	        const char *password);
@@ -42,7 +44,7 @@
 					     const char *password)
 {
 #ifdef HAVE_PAM
-  CharArray service(strDup(pam_service.getData()));
+  CharArray service(strDup(pamService.getData()));
   return do_pam_auth(service.buf, username, password);
 #else
   throw AuthFailureException("PAM not supported");
