Steve, To your question of why you'd ever receive value:
This is very common in any network programming. If you send a packet of data that has a header and payload, and the header contains the length (N) of the payload, then at some point you have to receive N bytes. If N is zero, then you receive 0 bytes. Of course, you CAN test for N == 0, that's obvious - but why would you if the underlying layers worked correctly? Its just extra code to handle an special case. -- http://mail.python.org/mailman/listinfo/python-list