Huge thanks to Igor and Mariano. I recovered the image. Just in case anyone ever has a similar problem, the solution was: 1. Test for selector in CoInterpreter>>commonSend ... (messageSelector = #halt) ifFalse: [ "the conditional was added" self internalFindNewMethod. self internalExecuteNewMethod ]. self fetchNextBytecode. 2. Manually edit the condition in gcc3x-cointerp.c: char* realSelector = GIV(messageSelector) + BaseHeaderSize; if (strncmp(realSelector, "halt", 4) == 0) puts("Skipping halt..."); else { ... Although I lost the better part of a day, it's a very powerful feeling to start building basic VM skills and know that errors that used to be magical and fatal can now be resolved... Cheers, Sean -- View this message in context: http://forum.world.st/Oops-I-put-a-halt-in-a-startup-method-tp3800163p380293... Sent from the Pharo Smalltalk mailing list archive at Nabble.com.