Some more information on the problem.

Before it calls the GetCSVData the application is using 40,172 KB of memory (per the Windows Task Manager). Once it calls GetCSVData it peaks out at a whopping 1.3 GB of memory and then eventually backs down to 81,436 KB at the first line of the GetCSVData function itself. The problem does occur on multiple 64 Bit Client machines.

It is compiled as an x64 application, but under 32 bit Vista. Maybe compiling it under Windows 7, 64 bit would be better. I can try that tomorrow.

'Object' in the pseudo code is a tarpDataSet object which is my own Class. The GetCSVData is one of the heavy lifting functions that reads an end users output file and stores the data in the class. It is about 4000 lines of code and all this happens before any variable declarations (the msgbox is the first line after the sub declaration).

Not sure what is meant by "Singleton". It is one item in a collection of tarpDataSets based on what the user has requested through the GUI. Nothing exotic about it. I'm going to try this as a 32 bit application and see what happens as well.