Fix various segfaults and heap trashes. Thanks to Andrew Mobbs.