--- exim-4.72/src/auths/spa.c	2009-11-16 20:50:38.000000000 +0100
+++ ../work.debug/exim-4.72/src/auths/spa.c-fixed	2010-11-01 23:24:26.000000000 +0100
@@ -127,6 +127,7 @@
 SPAAuthResponse  *responseptr = &response;
 uschar msgbuf[2048];
 uschar *clearpass;
+int res;
 
 /* send a 334, MS Exchange style, and grab the client's request */
 
@@ -144,12 +145,16 @@
   }
 
 /* create a challenge and send it back */
-
 spa_build_auth_challenge(&request,&challenge);
 spa_bits_to_base64 (msgbuf, (unsigned char*)&challenge,
     spa_request_length(&challenge));
 
-if (auth_get_no64_data(&data, msgbuf) != OK)
+res = auth_get_no64_data(&data, msgbuf);
+if ( res == CANCELLED )
+  {
+  return CANCELLED;
+  }
+if (res != OK)
   {
   /* something borked */
   return FAIL;

