--- src/lib/gssapi/mechglue/g_glue.c.old 2008-07-03 12:38:01.000000000 +0530 +++ src/lib/gssapi/mechglue/g_glue.c 2008-07-03 12:39:29.000000000 +0530 @@ -529,10 +529,15 @@ gss_OID mech_type; { int i; + gss_OID_desc spnego_mech = {6, (void *)"\x2b\x06\x01\x05\x05\x02"}; if (union_cred == GSS_C_NO_CREDENTIAL) return GSS_C_NO_CREDENTIAL; + /* SPNEGO mechanism will again call into GSSAPI */ + if (g_OID_equal(&spnego_mech, mech_type)) + return (gss_cred_id_t)union_cred; + for (i=0; i < union_cred->count; i++) { if (g_OID_equal(mech_type, &union_cred->mechs_array[i])) return union_cred->cred_array[i];