One quite spectacular bug appeared when I switched the build target to Release. It's a funny feeling, make one simple change and it seems the world is coming to an end. Luckily, they are all the same bug and the fix is simple. All of those @property and @synthesize variables that I used must also be declared as instance variables. Not too surprising, and I had wondered why I was getting away with it. Interesting that under Debug you don't need to do this, but under Release you must.