Just for the record, Victor's finding falsifies the claim that the problem, once triggered, persists across postfix stop/start.
I suggest moving the fix into the teardown_milters() function. It's still not perfect, but it keeps things in one place. Wietse *** ./src/smtpd/smtpd.c- 2017-02-18 20:58:21.000000000 -0500 --- ./src/smtpd/smtpd.c 2017-04-03 14:03:29.000000000 -0400 *************** *** 5396,5401 **** --- 5396,5403 ---- milter_free(state->milters); state->milters = 0; } + smtpd_input_transp_mask = + input_transp_mask(VAR_INPUT_TRANSP, var_input_transp); }