Actually gigaman was right.
After some debugging, i finally figured it was the Load Stuff in the Directory table
Zeroing its size resolved the problem
It was related to Safe Exceptions:
There is a white list of exception handlers. if an exception occurs , the OS checks whether the except handler is in the white list or not, and kill the software if not.. This is to prevent exploitation of buffer overflow and friends, via SEH overwrite.
Thank you all for your tips. and sorry for taking so long to answer
Cheers!