OK I discovered how it works :) Pre-relocation only env_init() is called, which does not call the .load() env driver method, only .init(). So the 2K stack usage in env_eeprom_load() is only used after relocation, and at that time stack is big enough to contain it. This means that I can greatly simplify the env_eeprom_load() function. Marek