Thanks for the advice. After further investigation, it appears that, in a login shell, directing the output of any built-in command to a pipe causes ksh to hang. I've submitted the problem to ast-users at research.att.com along with the ktrace output.