diff -Naur cyrus-imapd-2.3.16.orig/imap/backend.c cyrus-imapd-2.3.16/imap/backend.c --- cyrus-imapd-2.3.16.orig/imap/backend.c 2009-04-23 12:10:05.000000000 -0500 +++ cyrus-imapd-2.3.16/imap/backend.c 2010-03-30 15:58:22.000000000 -0500 @@ -93,7 +93,7 @@ resp = (automatic == AUTO_BANNER) ? prot->banner.resp : prot->capa_cmd.resp; - if (!automatic) { + if (!automatic && strcmp(prot->sasl_service, "csync")) { /* no capability command */ if (!prot->capa_cmd.cmd) return NULL; @@ -449,7 +449,8 @@ if ((server[0] != '/') || (strcmp(prot->sasl_service, "lmtp") && strcmp(prot->sasl_service, "csync"))) { - char *mlist = xstrdup(mechlist); /* backend_auth is destructive */ + char *mlist = NULL; + if (mechlist) mlist = xstrdup(mechlist); /* backend_auth is destructive */ if ((r = backend_authenticate(ret, prot, &mlist, userid, cb, auth_status))) {