fixed a bug that $differ flag is not set.
Reflect correctly the side effects of walk_parts within.
track part changing with an enclosed variable