while-patch