When optimiser set to level 9 (Common code block) calls to a certain function are getting optimised out. The function takes a char pointer as an argument, and calculates a checksum from the 'pointed to' string, which gets appended to the end of the string (i.e the function will modify the string). I'm assuming the compiler interprets this function call as redundant, although the body of the function isn't being optimised out... Assuming there's nothing wrong with the function code (!) Why would the optimiser remove these calls, and how do I stop it...? Thanks! David