First up, I recall reading somewhere that if the DLL doesn't use sysUtils, exceptions may break it and the calling app, so make sure that the DLL includes sysUtils.

Secondly, this is probably stating the obvious, but don't rely on exceptions for handling potential problems. Make the code in the DLL far more robust and include checks for assigned pointers, division by 0 etc. and take action with conditional flow control. You may already be doing this and using exceptions as a last resort... in which case make your calling code more robust in dealing with potential issues.

Thats all I can think of at the mo hon, hope it helps (although I should add, I'm not sure how relevant this is to fpc).