Hi all, I am cracking my head to see why Keil's uVision2 has this problem? Calling a subroutine callee on the first time, returned to the original Caller with no problem. Calling it 2nd time and follows, caused a critical fault of NOT returning to original caller's address SP_max: 032 I have a mixture of C & Assembly coding. where Timer interrupts happen under C and most logical functions are done under .A51s. What could be the cause of calling a subroutine which doesn't return to the original caller's address? Please advise. Head scratching, James