Eli Zaretskii writes: > I see that it's a small mess, but I don't think I understand your > reasoning about setting the filter to t twice: it looks to me that > both calls will clear the bit of p->infd, because they both will > trigger this clause: > > if (EQ (p->filter, Qt) && !EQ (p->status, Qlisten)) > Am I missing something? Argh, no, I was confused. The code in Emacs 25 is correct, although (IMO) somewhat misleading. > . if the filter is not t, we will now call add_process_read_fd every > time, for no good reason (This is a moot point due to the second problem, but) add_process_read_fd just sets some bits, which is harmless even if repeated. > . the patch changes how connect_network_socket works in ways that we > don't sufficiently understand Yes, I agree this is a serious problem. > I would like to leave connect_network_socket alone on the release > branch, and just fix the problem with set-process-filter. I think the > easiest way is simply not to call set_process_filter_masks in > set-process-filter, and instead restore the way that code worked > before 9755b753, i.e. let it test the argument FILTER _before_ that > filter is installed. Do you see any problems with this fix? I think that makes sense, patch attached.