Problem calling a function in a global object


I'm in the process of importing old legacy code from two TigerSharc processors onto a new ADSP-SC584, and have run into a problem with a global object.

I have basically two classes, Fsm (parent) and FsmRt (child), Fsm declares Running() as pure virtua, and FsmRt implements Running().

When calling my global function from Fsm everything is ok, but when calling the same function from FsmRt everything crashes and the debugger is left at 0x00000000...

The only difference I can see is in the disassembly where the call from Fsm looks like this:

and the same call from the FsmRt class looks like this:

How do I solve this - or what on earth is going on here?