Two methods come to mind, there may be more. 1) Use DDE (Dynamic data exchange). The DDEML library make this easier than using the DDE functions directory. There are examples with MSVC 1.5 onwards and/or platform SDK. MSVC 1.5 was 16 bit. 2) Use WM_COPYDATA and SendMessage(). This is defined for Win32 onwards, however there is nothing to prevent you using this message (you may need to define it yourself for Win16) in your 16 bit programs. I've done both of the above techniques in the past ('96/'97 ish) on both 16 and 32 bit OSes. Stephen Kellett