Hi yaffsers One problem that was identified with the original checkpointing was that it requires the use of a partitioning scheme to break off a chunk of storage for the checkpoint data. This is fiddly (needs setting extra parameters), is wasteful (need to cut off a bigger area than you typically need), and various other issues. Thus, I spent some of the last week or so changing the checkpoint allocation to a "non-partitioned" mechanism using blocks in the main data area. This does away with the above problem but adds a very slight overhead to seach for the checkpoint data. This overhead is extremely small in my testing. The speedup is pretty impressive. So far I have two data points. If anyone else can provide some info I'd like to see it: 200MHz ARM with 128MB flash, almost full with 2k files. Mount with no checkpoint: ~4 secs Mount with partitioned checkpoint: ~0.25 secs Mount with non-partitioned checkpoint: ~0.3 secs 180MHz ARM device with 2GBytes flash and hot-rodded NAND driver Mount with no checkpointing: many tens of seconds Mount with partitioned checkpoint: sub second Mount with non-partitioned checkpoiint: ... we'll here soon. -- Charles