I patched term/users.c (open_hook) so it clears the FLUSH_OUTPUT flag if the tty was not already open.
I built hurd from commit bc170131016969f1d79409337833046ae1f4501b (2016-06-14 "pfinet: fix memory leak") + the following changes: * debian/patches/exec_filename_*.patch from the Debian hurd 1:0.8.git20160522-4 sources, for https://savannah.gnu.org/bugs/?28934 * term/users.c change described above * trans/streamio.c change for https://savannah.gnu.org/bugs/?48371 * libpipe/pipe.c change for https://savannah.gnu.org/bugs/?48372 I installed /hurd/exec, /hurd/exec.static, /hurd/ext2fs, /hurd/ext2fs.static, /hurd/fifo, /hurd/new-fifo, /hurd/pflocal, /hurd/streamio, /hurd/term, /lib/i386-gnu/libpipe.a, and /lib/i386-gnu/libpipe.so.0.3. Then rebooted. To test the change, I connected to the Hurd VM via SSH and got /dev/ttyp0. Then ran cat, typed abc, pressed ^O, typed def (which did not appear), killed the ssh client, and connected again. The motd and the shell prompt appeared OK, and the tty command showed that this was /dev/ttyp0 again. I also built vim-7.4.1829 and ran its test suite, which passed.