The stack trace indicates that the path object destructor ~path() is calling free(void * pBlock blah...) in free.c and that is when the break occurs due to the filesystem::error.
What does that mean? It seems like there is nothing I can do if it is being caused by the destructor and/or Windows heap functions, but maybe I am not reading the output correctly.
It sounds to me like there's some sort of memory corruption, possibly a block is being twice freed, or a non-block is being freed. Either way, I can't really tell what's going on w/o more information, such as a self-contained example demonstrating this problem. In the mean-time, using the stack trace, figure out which call in your code leads to the exception and comment it out. Then, see if the exception shows up elsewhere. -- Matthew Peltzer -- goochrules@gmail.com