*** qmail-1.03/qmail-local.c	Mon Jun 15 05:53:16 1998
--- qmail-local.c	Tue Sep 15 12:16:57 1998
***************
*** 41,46 ****
--- 41,49 ----
  void temp_qmail(fn) char *fn;
  { strerr_die5x(111,"Unable to open ",fn,": ",error_str(errno),". (#4.3.0)"); }
  
+ char *overquota = 
+ 	"Recipient's mailbox is full, message returned to sender. (#5.2.2)";
+ 
  int flagdoit;
  int flag99;
  
***************
*** 131,137 ****
     /* if it was error_exist, almost certainly successful; i hate NFS */
   tryunlinktmp(); _exit(0);
  
!  fail: tryunlinktmp(); _exit(1);
  }
  
  /* end child process */
--- 134,145 ----
     /* if it was error_exist, almost certainly successful; i hate NFS */
   tryunlinktmp(); _exit(0);
  
!  fail: 
!    if (errno == error_dquot) {
!      tryunlinktmp(); _exit(5);
!    } else {
!      tryunlinktmp(); _exit(1);
!    }
  }
  
  /* end child process */
***************
*** 162,167 ****
--- 170,176 ----
     case 2: strerr_die1x(111,"Unable to chdir to maildir. (#4.2.1)");
     case 3: strerr_die1x(111,"Timeout on maildir delivery. (#4.3.0)");
     case 4: strerr_die1x(111,"Unable to read message. (#4.3.0)");
+    case 5: strerr_die1x(100,overquota);
     default: strerr_die1x(111,"Temporary error on maildir delivery. (#4.3.0)");
    }
  }
***************
*** 221,227 ****
   return;
  
   writeerrs:
!  strerr_warn5("Unable to write ",fn,": ",error_str(errno),". (#4.3.0)",0);
   if (flaglocked) seek_trunc(fd,pos);
   close(fd);
   _exit(111);
--- 230,241 ----
   return;
  
   writeerrs:
!  if (errno == error_dquot) { 
!    if (flaglocked) seek_trunc(fd,pos);
!    close(fd);
!    strerr_die1x(100,overquota);
!  } else
!    strerr_warn5("Unable to write ",fn,": ",error_str(errno),". (#4.3.0)",0);
   if (flaglocked) seek_trunc(fd,pos);
   close(fd);
   _exit(111);
*** qmail-1.03/error.h	Mon Jun 15 05:53:16 1998
--- error.h	Tue Sep 15 11:52:14 1998
***************
*** 16,21 ****
--- 16,22 ----
  extern int error_pipe;
  extern int error_perm;
  extern int error_acces;
+ extern int error_dquot;
  
  extern char *error_str();
  extern int error_temp();
*** qmail-1.03/error.c	Mon Jun 15 05:53:16 1998
--- error.c	Tue Sep 15 11:53:29 1998
***************
*** 93,95 ****
--- 93,102 ----
  #else
  -13;
  #endif
+ 
+ int error_dquot =
+ #ifdef EDQUOT
+ EDQUOT;
+ #else
+ -14;
+ #endif

