I don't have access to the firewall, so am stuck. I'm using these strings to chat over ssh: ./srec | ssh user at host speexdec - and in another console: ssh user at host ./srec | speexdec - Where srec is a script containing: arecord -r32000 -c2 -fs16_le - | speexenc - - I've noticed that even ./srec | speexdec - on the localhost generates about 3 or 4 seconds of lag right there. Even removing the buffer in speexdec didn't help - for they weren't designed to run over pipes.