Fix #30502 by a new approach. 