Hi Hans,
I think changing FINISH-OUTPUT back to FORCE-OUTPUT is wrong. It reintroduces the bug I reported a couple of months ago: http://common-lisp.net/pipermail/tbnl-devel/2011-February/005411.html
Using (FORCE-OUTPUT S) in conjunction with (CLOSE S :ABORT T) does not guarantee all buffered output is sent to the socket before the socket is closed. That is probably why replacing FINISH-OUTPUT with FORCE-OUTPUT "fixed" Andrey's problem: the new version simply discards data instead of writing it to the socket.
Ilya