A method for operating a non-volatile storage system which reduces program
disturb. Multiple boosting modes are implemented while programming
non-volatile storage. For example, self-boosting, local self-boosting,
erased area self-boosting and revised erased area self-boosting may be
used. One or more switching criteria are used to determine when to switch
to a different boosting mode. The boosting mode may be used to prevent
program disturb in unselected NAND strings while storage elements are
being programmed in selected NAND strings. By switching boosting modes,
an optimal boosting mode can be used as conditions change. The boosting
mode can be switched based on various criteria such as program pulse
number, program pulse amplitude, program pass number, the position of a
selected word line, whether coarse or fine programming is used, whether a
storage element reaches a program condition and/or a number of program
cycles of the non-volatile storage device.