I upgraded from C251 v2.14 to v3.12 on June 26, 2001. I encountered two bugs while compiling existing sources: (1) Linker issues "Segment located outside class area" and linking stops. (2) Linker implicitly uses register bank 0 for main(), yet assigns variables to location 0. Problem (1) was a result of a C function calling an assembly function and the file with the assembly function was listed before the file with the C function. I swapped the order of files to the linker and the error went away. Problem (2) was fixed by adding the explicit "using 0" directive to main(). This was a nasty one, until I discovered in the MAP file that the linker was assigning variables to location zero. As I made changes to the code, different variables would end up there and the symptoms would change. To Keil - Both of these bugs cost me a couple of hours to track down and find a work-around. I did not found any tech notes or discussion questions regarding them yet. Would you please collect your bug reports and work-arounds and put them in your Applications Notes? It is really hard find this kind of info on your web site. Joel