Index: fetchmail/driver.c diff -u fetchmail/driver.c:1.1.1.35 fetchmail/driver.c:1.1.1.34 --- fetchmail/driver.c:1.1.1.35 Thu Jul 17 03:56:11 2003 +++ fetchmail/driver.c Fri Feb 28 11:53:57 2003 @@ -513,21 +513,27 @@ if (err == PS_RETAINED) { suppress_forward = suppress_delete = retained = TRUE; - suppress_readbody = TRUE; + /* do not read the body only if the underlying protocol + * allows the body to be fetched separately */ + if (ctl->server.base_protocol->fetch_body) + suppress_readbody = TRUE; } else if (err == PS_TRANSIENT) { suppress_delete = suppress_forward = TRUE; - suppress_readbody = TRUE; + if (ctl->server.base_protocol->fetch_body) + suppress_readbody = TRUE; } else if (err == PS_REFUSED) { suppress_forward = TRUE; - suppress_readbody = TRUE; + if (ctl->server.base_protocol->fetch_body) + suppress_readbody = TRUE; } else if (err == PS_TRUNCATED) { - suppress_readbody = TRUE; + if (ctl->server.base_protocol->fetch_body) + suppress_readbody = TRUE; len = 0; /* suppress body processing */ } else if (err)