Hi, Assume object A is renamed to shadow object B, then things will happen like: 1. A shadow header of object A is written. (of course with the same name as object B) 2. A deletion header of object B is written. 3. A normal header of object A is written. GC may probably take place in yaffs_UpdateObjectHeader before the header chunk is written. So if step 2 incurs GC, GC will get rid of the shadow header to generate a normal one. At this time, deletion header of object B hasn't been written, if power fails, we will get two objects with the same name in the same directory. i.e. things happen like: 1. A shadow header of object A is written. 2. writing deletion header of object B incurs GC, and shadow header of object A converts to a normal one. 3. power off 4. in yaffs_ScanBackwards we may get object A and B with the same name in the same dir. Although the probability is low, I still get confused. Do I misunderstand anything? -- Regards, neversetsun