diff -rc pine4.56/pine/filter.c pine4.56.qpfilter/pine/filter.c
*** pine4.56/pine/filter.c	Mon Apr  7 12:36:32 2003
--- pine4.56.qpfilter/pine/filter.c	Wed Sep  3 11:57:24 2003
***************
*** 1725,1733 ****
  		}
  
  		if(!isxdigit((unsigned char)c)){	/* must be hex! */
! 		    fs_give((void **)&(f->line));
! 		    gf_error("Non-hexadecimal character in QP encoding");
! 		    /* NO RETURN */
  		}
  
  		if (isdigit ((unsigned char)c))
--- 1725,1736 ----
  		}
  
  		if(!isxdigit((unsigned char)c)){	/* must be hex! */
! 		    GF_PUTC(f->next,'=');
!                     GF_PUTC(f->next,c); /* be tolerant to sender errors */
!                     state = DFL;  
! 	            q_status_message(SM_ORDER, 3, 4,
! 			"Non-hexadecimal character in QP encoding");
!                     break;
  		}
  
  		if (isdigit ((unsigned char)c))
***************
*** 1741,1749 ****
  	      case HEX :
  		state = DFL;
  		if(!isxdigit((unsigned char)c)){	/* must be hex! */
! 		    fs_give((void **)&(f->line));
! 		    gf_error("Non-hexadecimal character in QP encoding");
! 		    /* NO RETURN */
  		}
  
  		if (isdigit((unsigned char)c))
--- 1744,1752 ----
  	      case HEX :
  		state = DFL;
  		if(!isxdigit((unsigned char)c)){	/* must be hex! */
!                     GF_PUTC(f->next,c); 
!                     state = DFL;  
!                     break;
  		}
  
  		if (isdigit((unsigned char)c))
