Ported to CW8
diff --git a/Mac/mwerks/macuseshlstart.c b/Mac/mwerks/macuseshlstart.c
index d26a89f..32b808a 100644
--- a/Mac/mwerks/macuseshlstart.c
+++ b/Mac/mwerks/macuseshlstart.c
@@ -7,15 +7,30 @@
 
 #include <setjmp.h>
 
+#ifdef PRE_CW8
 extern jmp_buf __program_exit;			/*	exit() does a longjmp() to here		*/
 extern void (*__atexit_hook)(void);		/*	atexit()  sets this up if it is ever called	*/
 extern void (*___atexit_hook)(void);	/*	_atexit() sets this up if it is ever called	*/
 extern int __aborting;					/*	abort() sets this and longjmps to __program_exit	*/
+#endif
+
+/*
+ *	clear_stackframe_backlink	-	set 0(SP) to 0
+ *
+ */
+
+static asm void clear_stackframe_backlink(void)
+{
+		li		r3,0
+		stw		r3,0(SP)
+		blr
+}
 
 void __start(void)
 {
 	char *argv = 0;
 	
+#ifdef PRE_CW8
 	if (setjmp(__program_exit) == 0) {	//	set up jmp_buf for exit()
 		main(0, &argv);				//	call main(argc, argv)
 		if (__atexit_hook)
@@ -26,4 +41,9 @@
 			___atexit_hook();			//	call _atexit() procs
 	}
 //	ExitToShell();
+#else
+	clear_stackframe_backlink();
+	main(0, &argv);
+	exit(0);
+#endif
 }