diff -ru cyrus-sasl-2.1.21.orig/lib/client.c cyrus-sasl-2.1.21/lib/client.c
--- cyrus-sasl-2.1.21.orig/lib/client.c	2004-11-17 09:19:30.000000000 -0500
+++ cyrus-sasl-2.1.21/lib/client.c	2005-06-26 16:08:52.000000000 -0400
@@ -1,7 +1,7 @@
 /* SASL client API implementation
  * Rob Siemborski
  * Tim Martin
- * $Id: client.c,v 1.64 2004/11/02 11:32:17 mel Exp $
+ * $Id: client.c,v 1.65 2005/05/18 21:06:50 shadow Exp $
  */
 /* 
  * Copyright (c) 1998-2003 Carnegie Mellon University.  All rights reserved.
@@ -60,9 +60,7 @@
 #include "saslint.h"
 
 static cmech_list_t *cmechlist; /* global var which holds the list */
-
-static sasl_global_callbacks_t global_callbacks;
-
+sasl_global_callbacks_t global_callbacks_client; 
 static int _sasl_client_active = 0;
 
 static int init_mechlist()
@@ -70,7 +68,7 @@
   cmechlist->mutex = sasl_MUTEX_ALLOC();
   if(!cmechlist->mutex) return SASL_FAIL;
   
-  cmechlist->utils=_sasl_alloc_utils(NULL, &global_callbacks);
+  cmechlist->utils=_sasl_alloc_utils(NULL, &global_callbacks_client);
   if (cmechlist->utils==NULL)
     return SASL_NOMEM;
 
@@ -211,8 +209,8 @@
       return SASL_OK;
   }
 
-  global_callbacks.callbacks = callbacks;
-  global_callbacks.appname = NULL;
+  global_callbacks_client.callbacks = callbacks;
+  global_callbacks_client.appname = NULL;
 
   cmechlist=sasl_ALLOC(sizeof(cmech_list_t));
   if (cmechlist==NULL) return SASL_NOMEM;
@@ -229,7 +227,7 @@
 
   sasl_client_add_plugin("EXTERNAL", &external_client_plug_init);
 
-  ret = _sasl_common_init(&global_callbacks);
+  ret = _sasl_common_init(&global_callbacks_client);
 
   if (ret == SASL_OK)
       ret = _sasl_load_plugins(ep_list,
@@ -333,10 +331,10 @@
   result = _sasl_conn_init(*pconn, service, flags, SASL_CONN_CLIENT,
 			   &client_idle, serverFQDN,
 			   iplocalport, ipremoteport,
-			   prompt_supp, &global_callbacks);
+			   prompt_supp, &global_callbacks_client);
   if (result != SASL_OK) RETURN(*pconn, result);
   
-  utils=_sasl_alloc_utils(*pconn, &global_callbacks);
+  utils=_sasl_alloc_utils(*pconn, &global_callbacks_client);
   if (utils==NULL)
       MEMERROR(*pconn);
   
diff -ru cyrus-sasl-2.1.21.orig/saslauthd/configure cyrus-sasl-2.1.21/saslauthd/configure
--- cyrus-sasl-2.1.21.orig/saslauthd/configure	2005-05-15 01:59:04.000000000 -0400
+++ cyrus-sasl-2.1.21/saslauthd/configure	2005-06-26 16:10:28.000000000 -0400
@@ -9380,8 +9380,8 @@
 if test $ac_cv_lib_pam_pam_start = yes; then
 
 	  if test "${ac_cv_header_security_pam_appl_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for security/pam_appl.h" >&5
-echo $ECHO_N "checking for security/pam_appl.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for pam/pam_appl.h" >&5
+echo $ECHO_N "checking for pam/pam_appl.h... $ECHO_C" >&6
 if test "${ac_cv_header_security_pam_appl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
@@ -9389,8 +9389,8 @@
 echo "${ECHO_T}$ac_cv_header_security_pam_appl_h" >&6
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking security/pam_appl.h usability" >&5
-echo $ECHO_N "checking security/pam_appl.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking pam/pam_appl.h usability" >&5
+echo $ECHO_N "checking pam/pam_appl.h usability... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 /* confdefs.h.  */
@@ -9399,7 +9399,7 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
-#include <security/pam_appl.h>
+#include <pam/pam_appl.h>
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
@@ -9425,8 +9425,8 @@
 echo "${ECHO_T}$ac_header_compiler" >&6
 
 # Is the header present?
-echo "$as_me:$LINENO: checking security/pam_appl.h presence" >&5
-echo $ECHO_N "checking security/pam_appl.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking pam/pam_appl.h presence" >&5
+echo $ECHO_N "checking pam/pam_appl.h presence... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 /* confdefs.h.  */
@@ -9434,7 +9434,7 @@
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <security/pam_appl.h>
+#include <pam/pam_appl.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -9467,10 +9467,10 @@
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc in
   yes:no )
-    { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: security/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: pam/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: pam/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: pam/pam_appl.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: pam/pam_appl.h: proceeding with the preprocessor's result" >&2;}
     (
       cat <<\_ASBOX
 ## ------------------------------------ ##
@@ -9481,12 +9481,12 @@
       sed "s/^/$as_me: WARNING:     /" >&2
     ;;
   no:yes )
-    { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: security/pam_appl.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: security/pam_appl.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: pam/pam_appl.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: pam/pam_appl.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: pam/pam_appl.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: pam/pam_appl.h: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: pam/pam_appl.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: pam/pam_appl.h: proceeding with the preprocessor's result" >&2;}
     (
       cat <<\_ASBOX
 ## ------------------------------------ ##
@@ -9497,8 +9497,8 @@
       sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
-echo "$as_me:$LINENO: checking for security/pam_appl.h" >&5
-echo $ECHO_N "checking for security/pam_appl.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for pam/pam_appl.h" >&5
+echo $ECHO_N "checking for pam/pam_appl.h... $ECHO_C" >&6
 if test "${ac_cv_header_security_pam_appl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else