Index: trunk/i386/boot2/drivers.c =================================================================== --- trunk/i386/boot2/drivers.c (revision 1097) +++ trunk/i386/boot2/drivers.c (revision 1098) @@ -816,24 +816,24 @@ return -1; } } - - // Notify modules that the kernel has been decompressed, is about to be decoded + + ret = ThinFatFile(&binary, &len); + if (ret == 0 && len == 0 && archCpuType==CPU_TYPE_X86_64) + { + archCpuType=CPU_TYPE_I386; + ret = ThinFatFile(&binary, &len); + } + + // Notify modules that the kernel has been decompressed and thinned, is about to be decoded execute_hook("DecodeKernel", (void*)binary, NULL, NULL, NULL); - - ret = ThinFatFile(&binary, &len); - if (ret == 0 && len == 0 && archCpuType==CPU_TYPE_X86_64) - { - archCpuType=CPU_TYPE_I386; - ret = ThinFatFile(&binary, &len); - } - - ret = DecodeMachO(binary, rentry, raddr, rsize); - - if (ret<0 && archCpuType==CPU_TYPE_X86_64) - { - archCpuType=CPU_TYPE_I386; - ret = DecodeMachO(binary, rentry, raddr, rsize); - } - - return ret; + + + ret = DecodeMachO(binary, rentry, raddr, rsize); + if (ret<0 && archCpuType==CPU_TYPE_X86_64) + { + archCpuType=CPU_TYPE_I386; + ret = DecodeMachO(binary, rentry, raddr, rsize); + } + + return ret; }