this is where the EOFError stuff may occur, see #46