diff -Naur cyrus-imapd-2.1.14.orig/lib/auth_unix.c cyrus-imapd-2.1.14/lib/auth_unix.c
--- cyrus-imapd-2.1.14.orig/lib/auth_unix.c	Tue May 13 17:33:26 2003
+++ cyrus-imapd-2.1.14/lib/auth_unix.c	Tue Aug  5 11:07:29 2003
@@ -161,6 +161,7 @@
     struct group *grp;
     char sawalpha;
     char *p;
+    int username_tolower = 0;
 
     if(!len) len = strlen(identifier);
     if(len >= sizeof(retbuf)) return NULL;
@@ -194,8 +195,12 @@
     /* Copy the string and look up values in the allowedchars array above.
      * If we see any we don't like, reject the string.
      */
+    username_tolower = config_getswitch("username_tolower", 1);
     sawalpha = 0;
     for(p = retbuf; *p; p++) {
+	if (username_tolower && isupper((unsigned char)*p))
+	    *p = tolower((unsigned char)*p);
+
 	switch (allowedchars[*(unsigned char*) p]) {
 	case 0:
 	    return NULL;
diff -Naur cyrus-imapd-2.1.14.orig/man/imapd.conf.5 cyrus-imapd-2.1.14/man/imapd.conf.5
--- cyrus-imapd-2.1.14.orig/man/imapd.conf.5	Tue Jul  1 16:39:55 2003
+++ cyrus-imapd-2.1.14/man/imapd.conf.5	Tue Aug  5 10:58:20 2003
@@ -89,6 +89,10 @@
 and Sieve scripts (lmtpd).  This option does NOT apply to admin tools
 such as cyradm (admins ONLY), reconstruct, quota, etc., NOR does it
 affect LMTP delivery of messages directly to mailboxes via plus-addressing.
+.IP "\fBusername_tolower:\fR yes" 5
+Lowercase username before login/autheticate.  This is useful with
+authentication backends which ignore case during username lookups (such
+as LDAP).
 .IP "\fBuserprefix:\fR Other Users" 5
 If using the alternate IMAP namespace, the prefix for the other users
 namespace.  The hierarchy delimiter will be automatically appended.
