You know that dlls are relocated. So first check at the bottom of imprec for image base of DLL. Imprec has an option that loads PE header from disc. So lets say that your orginal dll image base is 10000 in the PE header, if that locations is reserverd by another dll, windows will load your dll to another address, ie 12000. Of course when Imprec look for 10000 it wont find anything. So in order to fix this, change corresponding option of Imprec. Your work wont be finished here because you have o fix reloc section too. Good luck