I've taken Jeremy Rossi's TLS patch and updated it for current CVS, and also cleaned up the parts of it that broke regular TCP when SSL was unavailable. What I have been completely unable to do is prevent this from introducing a branch/function call into the common path for doRead/doWrite, even when TLS is not in use. In order of desirability (imho), this can be fixed by: Rewrite tcp.py, more or less completely, *without* juggling methods as it currently does. Take the _TLS_* and _NOTLS_* functions and just inline them. Create a new transport, TLS, along with all the associated methods/functions (connect/listen/etc) so as to keep TLS code out of tcp.py entirely. Patch attached. Jp -- #!/bin/bash ( LIST=(~/.sigs/*.sig) cat ${LIST[$(($RANDOM % ${#LIST[*]}))]} echo -- $'\n' `uptime | sed -e 's/.*m//'` ) > ~/.signature -- up 42 days, 19:04, 4 users, load average: 0.35, 0.16, 0.19