The disassembler was producing: strh r4, [r0, #2] instead of strh r4, [r0], #2 which was causing the alignment and index to go all wrong causing crashes. Tested-by: dougt