Index: libcfa/prelude/bootloader.cf
===================================================================
--- libcfa/prelude/bootloader.cf	(revision 8e516fdabae6d5e2e08c1a38c8a41fb6c51386af)
+++ libcfa/prelude/bootloader.cf	(revision 7874d77ec28f592aa4cd10d5208d10754b6365b9)
@@ -1,5 +1,11 @@
 extern "C" { static inline int invoke_main(int argc, char* argv[], char* envp[]); }
+int cfa_args_argc;
+char ** cfa_args_argv;
+char ** cfa_args_envp;
 
 int main(int argc, char* argv[], char* envp[]) {
+	cfa_args_argc = argc;
+	cfa_args_argv = argv;
+	cfa_args_envp = envp;
 	return invoke_main(argc, argv, envp);
 }
Index: libcfa/src/parseargs.cfa
===================================================================
--- libcfa/src/parseargs.cfa	(revision 8e516fdabae6d5e2e08c1a38c8a41fb6c51386af)
+++ libcfa/src/parseargs.cfa	(revision 7874d77ec28f592aa4cd10d5208d10754b6365b9)
@@ -24,4 +24,8 @@
 #include "limits.hfa"
 
+extern int cfa_args_argc;
+extern char ** cfa_args_argv;
+extern char ** cfa_args_envp;
+
 void printopt(FILE * out, int width, int max, char sn, const char * ln, const char * help) {
 	int hwidth = max - (11 + width);
@@ -34,4 +38,8 @@
 		fprintf(out, "%*s%.*s\n", width + 11, "", hwidth, help);
 	}
+}
+
+void parse_args( cfa_option options[], size_t opt_count, const char * usage, char ** & left ) {
+	parse_args(cfa_args_argc, cfa_args_argv, options, opt_count, usage, left );
 }
 
Index: libcfa/src/parseargs.hfa
===================================================================
--- libcfa/src/parseargs.hfa	(revision 8e516fdabae6d5e2e08c1a38c8a41fb6c51386af)
+++ libcfa/src/parseargs.hfa	(revision 7874d77ec28f592aa4cd10d5208d10754b6365b9)
@@ -31,4 +31,5 @@
 }
 
+void parse_args( cfa_option options[], size_t opt_count, const char * usage, char ** & left );
 void parse_args( int argc, char * argv[], cfa_option options[], size_t opt_count, const char * usage, char ** & left );
 
