That you get an error in the 'fixed' call might not have to do with your fixed point class at all. I'm guessing that somewhere a wrong (overwriten) or already freed pointer gets referenced. Which should have point to an object, the first thing you access of it is a fixed point number and thus it crashes in there.