On kernel 3.2.0-0.bpo.1-amd64 I see some strange behaviour of connect() in case of connection via loopback. Lets see the following steps (there are two processes on the host, and the first one with two threads) Thread1: 1. socket(PF_INET, SOCK_STREAM, 0) -> 3 2. bind(10.27.10.1:26820) -> 0 /* The address is bound to some interface, eth1 */ 3. listen(3, 1) -> 0 sleep for a while Thread2: 4. shutdown(3, SHUT_RD) -> 0 sleep for a while Another process: 5. socket(PF_INET, SOCK_STREAM, 0) -> 4 6. connect(4, 10.27.10.1:26820) connect() returns -1 with ECONNREFUSED but after some time. In case of two peer hosts connect() returns -1 with ECONNREFUSED almost immediately, so does for the other kernel versions. In attachment c program to reproduce this problem.