*** a/src/interfaces/libpq/fe-auth.c
--- b/src/interfaces/libpq/fe-auth.c
***************
*** 124,130 **** struct krb5_info
  
  
  static int
! pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
  {
  	krb5_error_code retval;
  
--- 124,130 ----
  
  
  static int
! pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info, bool seterrormessage)
  {
  	krb5_error_code retval;
  
***************
*** 134,151 **** pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
  	retval = krb5_init_context(&(info->pg_krb5_context));
  	if (retval)
  	{
! 		printfPQExpBuffer(errorMessage,
! 						  "pg_krb5_init: krb5_init_context: %s\n",
! 						  error_message(retval));
  		return STATUS_ERROR;
  	}
  
  	retval = krb5_cc_default(info->pg_krb5_context, &(info->pg_krb5_ccache));
  	if (retval)
  	{
! 		printfPQExpBuffer(errorMessage,
! 						  "pg_krb5_init: krb5_cc_default: %s\n",
! 						  error_message(retval));
  		krb5_free_context(info->pg_krb5_context);
  		return STATUS_ERROR;
  	}
--- 134,153 ----
  	retval = krb5_init_context(&(info->pg_krb5_context));
  	if (retval)
  	{
! 		if (seterrormessage)
! 			printfPQExpBuffer(errorMessage,
! 							  "pg_krb5_init: krb5_init_context: %s\n",
! 							  error_message(retval));
  		return STATUS_ERROR;
  	}
  
  	retval = krb5_cc_default(info->pg_krb5_context, &(info->pg_krb5_ccache));
  	if (retval)
  	{
! 		if (seterrormessage)
! 			printfPQExpBuffer(errorMessage,
! 							  "pg_krb5_init: krb5_cc_default: %s\n",
! 							  error_message(retval));
  		krb5_free_context(info->pg_krb5_context);
  		return STATUS_ERROR;
  	}
***************
*** 154,162 **** pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
  								   &(info->pg_krb5_client));
  	if (retval)
  	{
! 		printfPQExpBuffer(errorMessage,
! 						  "pg_krb5_init: krb5_cc_get_principal: %s\n",
! 						  error_message(retval));
  		krb5_cc_close(info->pg_krb5_context, info->pg_krb5_ccache);
  		krb5_free_context(info->pg_krb5_context);
  		return STATUS_ERROR;
--- 156,165 ----
  								   &(info->pg_krb5_client));
  	if (retval)
  	{
! 		if (seterrormessage)
! 			printfPQExpBuffer(errorMessage,
! 							  "pg_krb5_init: krb5_cc_get_principal: %s\n",
! 							  error_message(retval));
  		krb5_cc_close(info->pg_krb5_context, info->pg_krb5_ccache);
  		krb5_free_context(info->pg_krb5_context);
  		return STATUS_ERROR;
***************
*** 165,173 **** pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
  	retval = krb5_unparse_name(info->pg_krb5_context, info->pg_krb5_client, &(info->pg_krb5_name));
  	if (retval)
  	{
! 		printfPQExpBuffer(errorMessage,
! 						  "pg_krb5_init: krb5_unparse_name: %s\n",
! 						  error_message(retval));
  		krb5_free_principal(info->pg_krb5_context, info->pg_krb5_client);
  		krb5_cc_close(info->pg_krb5_context, info->pg_krb5_ccache);
  		krb5_free_context(info->pg_krb5_context);
--- 168,177 ----
  	retval = krb5_unparse_name(info->pg_krb5_context, info->pg_krb5_client, &(info->pg_krb5_name));
  	if (retval)
  	{
! 		if (seterrormessage)
! 			printfPQExpBuffer(errorMessage,
! 							  "pg_krb5_init: krb5_unparse_name: %s\n",
! 							  error_message(retval));
  		krb5_free_principal(info->pg_krb5_context, info->pg_krb5_client);
  		krb5_cc_close(info->pg_krb5_context, info->pg_krb5_ccache);
  		krb5_free_context(info->pg_krb5_context);
***************
*** 203,209 **** pg_krb5_authname(PQExpBuffer errorMessage)
  
  	info.pg_krb5_initialised = 0;
  
! 	if (pg_krb5_init(errorMessage, &info) != STATUS_OK)
  		return NULL;
  	tmp_name = strdup(info.pg_krb5_name);
  	pg_krb5_destroy(&info);
--- 207,213 ----
  
  	info.pg_krb5_initialised = 0;
  
! 	if (pg_krb5_init(errorMessage, &info, false) != STATUS_OK)
  		return NULL;
  	tmp_name = strdup(info.pg_krb5_name);
  	pg_krb5_destroy(&info);
***************
*** 235,241 **** pg_krb5_sendauth(PGconn *conn)
  		return STATUS_ERROR;
  	}
  
! 	ret = pg_krb5_init(&conn->errorMessage, &info);
  	if (ret != STATUS_OK)
  		return ret;
  
--- 239,245 ----
  		return STATUS_ERROR;
  	}
  
! 	ret = pg_krb5_init(&conn->errorMessage, &info, true);
  	if (ret != STATUS_OK)
  		return ret;
  
