Wouldn't this blow up? Your 'becomes' pointer should occupy the memory space being overwritten here...