I need to do some more testing but ironically it looks like the RTIMING calls I put in to find out what was wrong became the cause of the poor performance.
I had refactored my code twice and so it seems I got rid of the original problem but the RTIMING calls were still causing it to choke.
Will report back again once I've tested some more.
Nick
Ah Well, this is definitely possible... RTIMING can skew the results, especially in MT environment.