У меня однажды были проблемы со строками в ISAPI DLL. По какой-то странной причине логическое значение IsMultiThread, определенное в System.pas, не было установлено!
Это вызывало странные AccessViolations, когда поток выполнял более одного потока ... Простой "IsMultiThread: = true;" в инициализации блока это исправлено.