I'm not sure if this clean-up ever happens, because the declaration merely shadows an outer declaration of the same name, and the do_cleanups call happens outside the scope of this declaration. This is my **GUESS** as to what might be intended here. If anybody has an alternate hypothesis, it's probably better than mine.