Hi, Wine experts. The program I'm trying to run in Wine crashes with SIGSEGV in the __wine_spec_relay_entry_points. Here is disassembled code that I got from gdb Code: Dump of assembler code for function __wine_spec_relay_entry_points: 0x68d97bbd <+0>: nop 0x68d97bbe <+1>: xchg %ax,%ax 0x68d97bc0 <+3>: push %esp 0x68d97bc1 <+4>: push $0x30000 0x68d97bc6 <+9>: call 0x68d98790 <__wine_spec_get_pc_thunk_eax> 0x68d97bcb <+14>: lea 0x17845(%eax),%eax 0x68d97bd1 <+20>: push %eax 0x68d97bd2 <+21>: call *0x4(%eax) 0x68d97bd5 <+24>: ret $0xc 0x68d97bd8 <+27>: push %esp 0x68d97bd9 <+28>: push $0x30001 0x68d97bde <+33>: call 0x68d98790 <__wine_spec_get_pc_thunk_eax> 0x68d97be3 <+38>: lea 0x1782d(%eax),%eax 0x68d97be9 <+44>: push %eax 0x68d97bea <+45>: call *0x4(%eax) 0x68d97bed <+48>: ret $0xc 0x68d97bf0 <+51>: push %esp 0x68d97bf1 <+52>: push $0x10002 0x68d97bf6 <+57>: call 0x68d98790 <__wine_spec_get_pc_thunk_eax> 0x68d97bfb <+62>: lea 0x17815(%eax),%eax 0x68d97c01 <+68>: push %eax 0x68d97c02 <+69>: call *0x4(%eax) 0x68d97c05 <+72>: ret $0x4 0x68d97c08 <+75>: mov %edi,%edi 0x68d97c0a <+77>: push %ebp 0x68d97c0b <+78>: mov %esp,%ebp 0x68d97c0d <+80>: add %ch,%al 0x68d97c0f <+82>: jge 0x68d97c1c <__wine_spec_relay_entry_points+95> 0x68d97c11 <+84>: add %al,(%eax) 0x68d97c13 <+86>: lea 0x177fd(%eax),%eax 0x68d97c19 <+92>: push %eax 0x68d97c1a <+93>: call *0x4(%eax) 0x68d97c1d <+96>: ret $0xc 0x68d97c20 <+99>: push %esp 0x68d97c21 <+100>: push $0x30004 0x68d97c26 <+105>: call 0x68d98790 <__wine_spec_get_pc_thunk_eax> 0x68d97c2b <+110>: lea 0x177e5(%eax),%eax 0x68d97c31 <+116>: push %eax 0x68d97c32 <+117>: call *0x4(%eax) 0x68d97c35 <+120>: ret $0xc ............................................................................... 0x68d985f5 <+2616>: lea 0x0(%esi),%esi 0x68d985f8 <+2619>: push %esp 0x68d985f9 <+2620>: push $0x20096 0x68d985fe <+2625>: call 0x68d98790 <__wine_spec_get_pc_thunk_eax> 0x68d98603 <+2630>: lea 0x16e0d(%eax),%eax 0x68d98609 <+2636>: push %eax 0x68d9860a <+2637>: call *0x4(%eax) 0x68d9860d <+2640>: ret $0x8 End of assembler dump. Look at the part 0x68d97c08 <+75>-0x68d97c1d <+96> - it is different from all others which look the same. My program crashes here 0x68d97c1a <+93>: call *0x4(%eax) because memory at this address couldn't be read. So, I have several questions. 1. What is the place where this code is generated? When DLL is loading into the address space? 2. Is the part I mentioned above broken? And how could it be generated like this? All that I found is the code in output_relay_debug in /wine-1.1.43/tools/winebuild/spec32.c. Is this the source of the generated assembler code? But I didn't see "broken" code here Thanks for your help.