you're creating a new fileitem and don't delete it. SetTimer() simply changes the pointer. the reason is that (at least before these changes), SetTimer() would always be called before anything was done with this window. i guess that's no longer the case now.