Try adding this line after the While .busy .... : Wend loop:
        While .Document.ReadyState <> "complete": DoEvents: Wend
However, that shouldn't be necessary because the DocumentComplete event handler is fired asynchronously only when the page is completely loaded and initialised, and the main CopyWebPage() routine is waiting for a flag to be set so that it knows that the page has been loaded and copied. DocumentComplete is fired only once, unless the page has frames, in which case it can fire multiple times, which could be what's happening for your page.

If the extra line above has no effect, post the URL of the page.