diff --git a/owl.c b/owl.c
index acc3423..de1b0cb 100644
--- a/owl.c
+++ b/owl.c
@@ -232,7 +232,7 @@ int main(int argc, char **argv, char **env)
   /* Initialize perl */
   owl_function_debugmsg("startup: processing config file");
   owl_context_set_readconfig(owl_global_get_context(&g));
-  perlerr=owl_perlconfig_initperl(configfile);
+  perlerr=owl_perlconfig_initperl(configfile, &argc, &argv, &env);
   if (perlerr) {
     endwin();
     owl_function_error("Internal perl error: %s\n", perlerr);
diff --git a/perlconfig.c b/perlconfig.c
index 9cae1ac..544e19e 100644
--- a/perlconfig.c
+++ b/perlconfig.c
@@ -276,7 +276,7 @@ char * owl_perlconfig_message_call_method(owl_message *m, char *method, int argc
 }
 
 
-char *owl_perlconfig_initperl(char * file)
+char *owl_perlconfig_initperl(char * file, int *Pargc, char ***Pargv, char *** Penv)
 {
   int ret;
   PerlInterpreter *p;
@@ -284,6 +284,7 @@ char *owl_perlconfig_initperl(char * file)
   char *args[4] = {"", "-e", "0;", NULL};
 
   /* create and initialize interpreter */
+  PERL_SYS_INIT3(Pargc, Pargv, Penv);
   p=perl_alloc();
   owl_global_set_perlinterp(&g, (void*)p);
   perl_construct(p);
