Socket.flush() shouldn't propagate exceptions from sys.net.Socket, but transform them into IOError (thanks soywiz! :)