Bug with YahooPops! (Maybe?)

I use my own mailserver, set on the usual POP3 port of 110. I also use YahooPops to download e-mail from my Yahoo! account. This is set on Port 111. I have set up Avast to run on port 112.

Assuming that my username is “loopy” and that my password is “password” (which they’re not, BTW), I connect to port 112 and use a username of “loopy#localhost:111” and the usual password. This works, but I have noticed when a large number of e-mails come in, every so often, rather than sending a single command to a line, separated by a line return, Avast seems to send more than one and does not separate them properly. I thought it might have something to do with YahooPops! but I tried bypassing Avast and my mailserver downloaded all the e-mails perfectly.

If I have confused you, here’s what I think is happening:

USER loopy#localhost:111
PASS password
LIST
RETR 1
DELE 1
[Repeat above two lines until]
RETR 18
DELE 18
RETR 19
DELE 19
[Hangs here]

Okay, I have further confirmation of this bug. I took a log this morning when I had 26 e-mails and had no errors

This is the log I took this afternoon (I have modified it slightly to remove my login details), when I only had four e-mails:
[03/10/04 15:29:46] Starting POP3 session for "{username}". [03/10/04 15:29:58] <{username}> Found 4 emails [Download e-mails] [03/10/04 15:30:13] <{username}> Command received from email client: STAT [03/10/04 15:30:13] <{username}> Response sent: +OK 4 47236 [03/10/04 15:30:13] <{username}> Command received from email client: LIST [03/10/04 15:30:14] <{username}> Response sent: 1 30369 [03/10/04 15:30:14] <{username}> Response sent: 2 3729 [03/10/04 15:30:14] <{username}> Response sent: 3 6434 [03/10/04 15:30:14] <{username}> Response sent: 4 6704 [03/10/04 15:30:14] <{username}> Response sent: . [03/10/04 15:30:14] <{username}> Command received from email client: RETR 1 [03/10/04 15:30:14] <{username}> Response sent: [Email sent to client] [03/10/04 15:30:14] <{username}> Command received from email client: DELE 1 [03/10/04 15:30:15] <{username}> Response sent: +OK message 1 deleted [03/10/04 15:30:15] <{username}> Command received from email client: RETR 2 [03/10/04 15:30:15] <{username}> Response sent: [Email sent to client] [03/10/04 15:30:15] <{username}> Command received from email client: DELE 2 [03/10/04 15:30:16] <{username}> Response sent: +OK message 2 deleted [03/10/04 15:30:16] <{username}> Command received from email client: RETR 3 [03/10/04 15:30:16] <{username}> Response sent: [Email sent to client] [03/10/04 15:30:16] <{username}> Command received from email client: DELE 3 RETR 4 [03/10/04 15:30:17] <{username}> Response sent: +OK message 3 deleted

Notice the DELE 3/RETR 4 line? Both have been sent on the same line. We now get a deadlock situation. Avast is waiting for YahooPops to respond to the RETR 4 request, but YahooPops has only just finished responding to the DELE 3 request and is waiting for the next command.

YahooPops only deletes the e-mails after it receives a QUIT command from the client, and since the deadlock situation causes a timeout on the client side, this is never received and hence, we end up downloading the same three e-mails over and over again.

Has anyone else got this problem?

(PS: I have attached the log file as a separate attachment)