diff -r 8cfacc41099e -r 1159e007cc8f util/sasl_cyrus.lua --- a/util/sasl_cyrus.lua Tue Aug 03 18:19:45 2010 +0500 +++ b/util/sasl_cyrus.lua Tue Aug 03 18:20:29 2010 +0500 @@ -133,8 +133,9 @@ local err; local data; - if self.mechanism then + if not self.first_step_done then err, data = cyrussasl.server_start(self.cyrus, self.mechanism, message or "") + self.first_step_done = true; else err, data = cyrussasl.server_step(self.cyrus, message or "") end