I found details of a bug in DPMI under certain versions of windows on Microsofts site: SYMPTOMS A Windows-based application that specifies "reset interrupt controller and A20 line" when calling the MS-DOS protected mode interrupt (DPMI) function "Simulate Real Mode Interrupt" can cause Windows to crash. RESOLUTION Applications that use the "Simulate Real Mode Interrupt" function must ensure that this bit is not set. So, with this in mind, you could try adjusting the SimulateRMInt function by deleting the line shown below: BOOL FAR PASCAL SimulateRM_Int (BYTE bIntNum, LPRMCS lpCallStruct) { BOOL fRetVal = FALSE; // Assume failure _asm { push di mov ax, 0x300 // DPMI Simulate Real Mode Int mov bl, bIntNum // Number of the interrupt to simulate // REMOVE THIS LINE mov bh, 0x01 // Bit 0 = 1; all other bits must be 0 xor cx, cx // No words to copy les di, lpCallStruct int 0x31 // Call DPMI jc END1 // CF set if error occurred mov fRetVal, TRUE END1: pop di } return (fRetVal); }