diff -c -r xmcd-3.0.2-orig/cdinfo_d/cdinfo_i.c xmcd-3.0.2/cdinfo_d/cdinfo_i.c
*** xmcd-3.0.2-orig/cdinfo_d/cdinfo_i.c	Tue Aug  7 17:14:55 2001
--- xmcd-3.0.2/cdinfo_d/cdinfo_i.c	Mon Aug 27 00:55:35 2001
***************
*** 20,26 ****
   *
   */
  #ifndef LINT
! static char *_cdinfo_i_c_ident_ = "@(#)cdinfo_i.c	7.114 01/07/26";
  #endif
  
  #ifdef __VMS
--- 20,26 ----
   *
   */
  #ifndef LINT
! static char *_cdinfo_i_c_ident_ = "@(#)cdinfo_i.c	7.115 01/08/24";
  #endif
  
  #ifdef __VMS
***************
*** 5112,5117 ****
--- 5112,5119 ----
  			if (app_data.proxy_auth) {
  				if (cdinfo_db.proxy_user == NULL ||
  				    cdinfo_db.proxy_passwd == NULL) {
+ 					CddbReleaseObject(optp);
+ 
  					*retcode = AUTH_ERR;
  					(void) cdinfo_closecddb(cp);
  					return NULL;
diff -c -r xmcd-3.0.2-orig/cdinfo_d/cdinfo_x.c xmcd-3.0.2/cdinfo_d/cdinfo_x.c
*** xmcd-3.0.2-orig/cdinfo_d/cdinfo_x.c	Tue Aug  7 17:14:55 2001
--- xmcd-3.0.2/cdinfo_d/cdinfo_x.c	Mon Aug 27 00:55:40 2001
***************
*** 20,26 ****
   *
   */
  #ifndef LINT
! static char *_cdinfo_x_c_ident_ = "@(#)cdinfo_x.c	7.120 01/07/26";
  #endif
  
  #ifdef __VMS
--- 20,26 ----
   *
   */
  #ifndef LINT
! static char *_cdinfo_x_c_ident_ = "@(#)cdinfo_x.c	7.122 01/08/24";
  #endif
  
  #ifdef __VMS
***************
*** 834,839 ****
--- 834,843 ----
  			(void) cdinfo_initcddb(cp, &retcode);
  			(void) cdinfo_closecddb(cp);
  		}
+ 		else if (retcode == AUTH_ERR) {
+ 			/* Special case handling for proxy auth error */
+ 			return CDINFO_SET_CODE(retcode, 0);
+ 		}
  	}
  
  	for (pp = cdinfo_db.pathlist; pp != NULL; pp = pp->next) {
***************
*** 848,853 ****
--- 852,863 ----
  			/* Open CDDB connection */
  			if ((cp = cdinfo_opencddb(s, &retcode)) == NULL) {
  				/* CDDB service failure */
+ 				if (retcode == AUTH_ERR) {
+ 					/* Special case handling for
+ 					 * proxy auth error
+ 					 */
+ 					return CDINFO_SET_CODE(retcode, 0);
+ 				}
  				break;
  			}
  
***************
*** 1135,1140 ****
--- 1145,1152 ----
  			return CDINFO_SET_CODE(KILLED_ERR, WTERMSIG(stat_val));
  		else
  			return 0;
+ 
+ 		/*NOTREACHED*/
  	}
  
  	if (cdinfo_cddb_iscfg() &&
***************
*** 1151,1156 ****
--- 1163,1172 ----
  			(void) cdinfo_initcddb(cp, &retcode);
  			(void) cdinfo_closecddb(cp);
  		}
+ 		else if (retcode == AUTH_ERR) {
+ 			/* Special case handling for proxy auth error */
+ 			CH_RET(retcode);
+ 		}
  	}
  
  	done = FALSE;
***************
*** 1165,1171 ****
  
  			/* Open CDDB connection */
  			if ((cp = cdinfo_opencddb(s, &retcode)) == NULL) {
! 				/* Failure */
  				break;
  			}
  
--- 1181,1193 ----
  
  			/* Open CDDB connection */
  			if ((cp = cdinfo_opencddb(s, &retcode)) == NULL) {
! 				/* CDDB service Failure */
! 				if (retcode == AUTH_ERR) {
! 					/* Special case handling for
! 					 * proxy auth error
! 					 */
! 					CH_RET(retcode);
! 				}
  				break;
  			}