I think your getting a little obsessive about this, by the looks of your post microsoft report the danger with DoEvents is if one message is being processed and somehow the same message is sent again during that process. If you're carefull you'll be alright, as long as your not buggering about with multi threading. when form unload is called the form won't accept any more messages to it's queue because it's not there, microsoft wouldn't put a command into the language if it makes your app unstable every time you use it.