Index: doc/theses/andrew_beach_MMath/code/resume-fixup-empty-f.cfa
===================================================================
--- doc/theses/andrew_beach_MMath/code/resume-fixup-empty-f.cfa	(revision 9cb6514c72783e65308b91bda966d51674a21e8a)
+++ doc/theses/andrew_beach_MMath/code/resume-fixup-empty-f.cfa	(revision 01f78e0cc9c6aa59eeb6eadb6fd8687be6fdcd4c)
@@ -4,10 +4,14 @@
 #include <stdlib.hfa>									// strto
 
-void nounwind_fixup(unsigned int frames, void (*raised_rtn)(int &)) {
+int nounwind_fixup(unsigned int frames, void (*raised_rtn)(int &)) {
 	if (frames) {
-		nounwind_fixup(frames - 1, raised_rtn);
+		int rtn = nounwind_fixup(frames - 1, raised_rtn);
+		if ( rtn == 42 ) printf( "42" );				// make non-tail recursive
+		return rtn;
+
 	} else {
 		int fixup = 17;
 		raised_rtn(fixup);
+		return fixup;
 	}
 }
@@ -25,4 +29,5 @@
 	void raised(int & fixup) {
 		fixup = total_frames + 42;						// use local scope => lexical link
+		if ( total_frames == 42 ) printf( "42" );
 	}
 
Index: doc/theses/andrew_beach_MMath/code/resume-fixup-empty-r.cfa
===================================================================
--- doc/theses/andrew_beach_MMath/code/resume-fixup-empty-r.cfa	(revision 9cb6514c72783e65308b91bda966d51674a21e8a)
+++ doc/theses/andrew_beach_MMath/code/resume-fixup-empty-r.cfa	(revision 01f78e0cc9c6aa59eeb6eadb6fd8687be6fdcd4c)
@@ -10,10 +10,13 @@
 vtable(fixup_exception) fixup_vt;
 
-void nounwind_empty(unsigned int frames) {
+int nounwind_empty(unsigned int frames) {
 	if (frames) {
-		nounwind_empty(frames - 1);
+		int rtn = nounwind_empty(frames - 1);
+		if ( rtn == 42 ) printf( "42" );				// make non-tail recursive
+		return rtn;
 	} else {
 		int fixup = 17;
 		throwResume (fixup_exception){&fixup_vt, fixup}; // change bad fixup
+		return fixup;
 	}
 }
