--- aclocal.m4-orig	2006-04-14 09:22:06.000000000 -0400
+++ aclocal.m4	2006-04-19 20:24:42.000000000 -0400
@@ -3360,7 +3360,31 @@
 	CPPFLAGS="$CPPFLAGS $KRB5CFLAGS"
 	save_LIBS="$LIBS"
 	LIBS="$LIBS $KRB5LIBS"
-	AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string krb5_524_convert_creds krb524_convert_creds_kdc])
+	AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string])
+	#
+	# Check for the krb524 function.  It's usually in libkrb5,
+	# but it may be in libkrb524.  Check the standard libs first
+	# and then check libkrb524 if we can't find it.  Note that
+	# not finding anything at all is not an error.  Should it be?
+	AC_MSG_CHECKING([for krb5_524_convert_creds])
+	AC_TRY_LINK_FUNC([krb5_524_convert_creds],
+	   [ AC_DEFINE(HAVE_KRB5_524_CONVERT_CREDS, 1, [have krb5_524_convert_creds()]) 
+	     AC_MSG_RESULT([yes]) ],
+	   [ AC_MSG_RESULT([no])
+             AC_MSG_CHECKING([for krb524_convert_creds_kdc])
+             AC_TRY_LINK_FUNC([krb524_convert_creds_kdc],
+	     [ AC_DEFINE(HAVE_KRB524_CONVERT_CREDS_KDC, 1, [have krb524_convert_creds_kdc()]) 
+               AC_MSG_RESULT([yes])],
+	     [ LIBS="$LIBS -lkrb524"
+	       AC_MSG_RESULT([no])
+	       AC_MSG_CHECKING([for krb524_convert_creds_kdc in -lkrb524])
+	       AC_TRY_LINK_FUNC([krb524_convert_creds_kdc],
+		[ KRB5LIBS="$KRB5LIBS -lkrb524" ;
+	 	  AC_DEFINE(HAVE_KRB524_CONVERT_CREDS_KDC, 1, [have krb524_convert_creds_kdc()])
+	          AC_MSG_RESULT([yes])
+	        ], [ AC_MSG_RESULT([no]) ])
+	     ])
+	   ])
 	AC_CHECK_HEADERS([kerberosIV/krb.h])
 	AC_CHECK_HEADERS([kerberosV/heim_err.h])
 

