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.