A method of programming non-volatile storage, comprising: applying programming to a first set of non-volatile storage elements being programmed to a first set of one or more targets (S2, S4, S6, S7) and to a second set of non-volatile storage elements being programmed to a second set of one or more targets (S1, S3, S5), wherein the targets of the first set of one or more targets (S2, S4, S6, S7) are different to the targets of the second set of one or more targets (S1, S3, S5); testing whether the first set of non-volatile storage elements have reached their respective target; locking out from further programming non-volatile storage elements of the first set of non-volatile storage elements that have been determined to have reached their respective target; characterised by: detecting a number of fast programming non-volatile storage elements of the second set of non-volatile storage elements for each target of the second set of one or more targets, wherein the detecting the number of fast programming non-volatile storage elements includes testing whether non-volatile storage elements of the second set of non-volatile storage elements have reached one or more targets (S2, S4, S6, S7) for the first set of non-volatile storage elements; and for each target of the second set of one or more targets, locking out from further programming non-volatile storage elements of the second set of non-volatile storage elements that are being programmed to said each target of the second set of one or more targets (S1, S3, S5) that has more than a threshold number of fast programming non-volatile storage elements being programmed thereto. applying programming to a first set of non-volatile storage elements being programmed to a first set of one or more targets (S2, S4, S6, S7) and to a second set of non-volatile storage elements being programmed to a second set of one or more targets (S1, S3, S5), wherein the targets of the first set of one or more targets (S2, S4, S6, S7) are different to the targets of the second set of one or more targets (S1, S3, S5); testing whether the first set of non-volatile storage elements have reached their respective target; locking out from further programming non-volatile storage elements of the first set of non-volatile storage elements that have been determined to have reached their respective target; characterised by: detecting a number of fast programming non-volatile storage elements of the second set of non-volatile storage elements for each target of the second set of one or more targets, wherein the detecting the number of fast programming non-volatile storage elements includes testing whether non-volatile storage elements of the second set of non-volatile storage elements have reached one or more targets (S2, S4, S6, S7) for the first set of non-volatile storage elements; and for each target of the second set of one or more targets, locking out from further programming non-volatile storage elements of the second set of non-volatile storage elements that are being programmed to said each target of the second set of one or more targets (S1, S3, S5) that has more than a threshold number of fast programming non-volatile storage elements being programmed thereto. detecting a number of fast programming non-volatile storage elements of the second set of non-volatile storage elements for each target of the second set of one or more targets, wherein the detecting the number of fast programming non-volatile storage elements includes testing whether non-volatile storage elements of the second set of non-volatile storage elements have reached one or more targets (S2, S4, S6, S7) for the first set of non-volatile storage elements; and for each target of the second set of one or more targets, locking out from further programming non-volatile storage elements of the second set of non-volatile storage elements that are being programmed to said each target of the second set of one or more targets (S1, S3, S5) that has more than a threshold number of fast programming non-volatile storage elements being programmed thereto.