diff -Naur fetchmail-6.2.2.orig/sink.c fetchmail-6.2.2/sink.c --- fetchmail-6.2.2.orig/sink.c 2003-03-01 07:32:18.000000000 +0530 +++ fetchmail-6.2.2/sink.c 2003-06-02 18:37:34.000000000 +0530 @@ -842,6 +842,9 @@ } else if (strchr(msg->return_path,'@') || strchr(msg->return_path,'!')) ap = msg->return_path; + /* in case Return-Path was "<>" we want to preserve that */ + else if (strcmp(msg->return_path,"<>") == 0) + ap = msg->return_path; else /* in case Return-Path existed but was local */ { if (is_dottedquad(ctl->server.truename)) diff -Naur fetchmail-6.2.2.orig/transact.c fetchmail-6.2.2/transact.c --- fetchmail-6.2.2.orig/transact.c 2003-03-01 07:44:42.000000000 +0530 +++ fetchmail-6.2.2/transact.c 2003-06-02 18:37:34.000000000 +0530 @@ -679,6 +679,8 @@ */ if (!strncasecmp("Return-Path:", line, 12) && (cp = nxtaddr(line))) { + if (cp[0]=='\0') /* nxtaddr() strips the brackets... */ + cp="<>"; strncpy(msgblk.return_path, cp, sizeof(msgblk.return_path)); msgblk.return_path[sizeof(msgblk.return_path)-1] = '\0'; if (!ctl->mda) {