Brilliant! Sure enough 102000 ms to load with the Resume and 2500 without it. I will replace all my resumes with a 'DebugResume so that I can re-enable them when debugging and leave them out when compiling for production mode. As for the structure of the code, this is a small excerpt from a much larger program. That program has many collections of varying object types (classes), some of which are inter-dependent. To troubleshoot this issue, I stripped out as much as I could to still reproduce the problem. The GetCSVdata is meant to be a single interface to handle multiple formats that the user could throw at it as far as output files to process, without having to have a separate reader for each format type. The entire project is a hierarchy of objects kind of like XL with XLApp, XLbook, XLsheet, XLchart, etc, just for the purposes my program provides. Thanks to all who took a look at this. On my list of things to try, "remove resumes" was somewhere around 200000; I would have never even thought to try that. I will mark this one resolved as the workaround, but the behavior is still strange and I would love an explanation from MS as to what is really going on under the hood.