It may not use the literal Application.DoEvents procedure. It could simply hold its own events in an internal queue if DoEvents is set to false, and when set to true process all the events in its queue as well as any future events.