That rebooted my phone!
layer1~~>removeChild does not exist so I used layer1~~>removeChild(node, false).
The removeChild call does not seem to have any effect by itself as everything still appears after.
Removing the addChild call stops the crashing.
I cast my sprite to CCNode* and both layers to CCLayer* but still no joy.