Hi, I'm committing the attached patch which requirks the ELF loader to correct the following problems: 1) Flags in the program header table were being used to determine whether an address was part of executable code, however a segment can contain more than one section and they may be a mix of executable and data sections. 2) The table of segments was static and was simply added to for each object file which was loaded. This means that an address was compared against all segments of all executables for a simulation of multiple cpus with multiple programs. This patch uses the ELF section table to examine each section individually to see if it is executable. The resulting table is also divided into sub tables and each loader gets a pointer to the appropriate sub-table of sections to examine. Each subtable is terminated by an entry of all zeroes. This patch also removes the hard-coded 100 element limit (which was not checked) on the number of segments and executable sections in favour of dynamic allocation. Tested against the internal port which exposed the problem and against xstormy16. Dave