Thanks for the hint. I looked into current code and Free can be called several times without issues. My guess is that the violation comes from freeing the OpenGL buffers as these are the only unmanaged memory parts. These are protected by a flag if they are set and I could not find a place where the flag was set without having allocated them. So a bit unclear why this happened to you. The function is after all called thousands of times per print for many user and normally has no issues. Maybe video ram was full leading to unexpected behaviour.
I assume this also does not happen regularly to you?