I hope this doesn't detract the main purpose of my question. But I have written a saslauthd clone daemon to glue cyrus and exim into another authentication system. Using testsaslauthd shows that the daemon is working properly. I can watch the input/output from the client to the saslauthd daemon. It is a very simple protocol. As I said from watching the logs testsaslauthd sends the realm properly. But imapd is not sending the realm. My back end is currently configured to work with the realm because the system will be expected to support more than one domain. It actually supports accepting user@realm as the user or having the realm passed in separately...