Yes, it works now, with the stolen bytes you mention, and looking in my runtrace data I can see them in there, and the program runs for me even without nopping the call which is odd, unless of course you mean running it in a debugger, now that I have problems with, then it brings up the error message, with an exception at 004052CB, which you can trace back to the call you mention, but many other calls lead to it too, so nopping the call you did doesn't fix that.
Now comes the dumb ass question, and unless I ask it, I'll always be a dumb ass, how do I know which entries in the runtrace data are the stolen bytes, I know the PUSH EBP, MOV EBP,ESP & the SUB whatever and how to get the MOV EAX whatever, but the other ones I'm scratching my head as to how you know which ones to use.