After adding OS trace to yaffs2, I saw that sync does a call to yaffs_sync_fs, but it is a nop. This mean sync syscall doesn't flush the yaffs2 cache and data it lost on unclean umount. Calling yaffs_FlushEntireDeviceCache in yaffs_sync_fs seems to make sync working. What do you think of that ? Matthieu