Fix bug in error handling where __sub would be clobbered.
diff --git a/src/lisp/main.c b/src/lisp/main.c
index 07e6d4a..f78b3b1 100644
--- a/src/lisp/main.c
+++ b/src/lisp/main.c
@@ -20,10 +20,11 @@
 		goto done;
 	}		
 
-	value_t (*lisp_main)() = find_function(env, "main")->def0;
+	struct function *lisp_main_f = find_function(env, "main");
 
-	if (lisp_main)
+	if (lisp_main_f)
 	{
+		value_t (*lisp_main)() = lisp_main_f->def0;
 		gc_set_base_here();
 		lisp_main();
 	}