Our solution has a main program with a series of com objects that the main program invokes as needed. I've moved many common functions to libraries (bpl) so that both the main program and the com objects can call the same functions without duplicating code. However, I now have a case where a dialog in the library needs to send a request back to the main program. The library function could have been called by the main program itself, but it could also have been called by one of the com objects that's also running. How do I create an event that the library triggers that the main program can react to? Thanks for any clarification.