This patch is for master branch, but the bug also appears in the current stable-2.0 I think. With the recent patch from Eli Zaretskii, there'd be one more step for argv[0]: scm_i_mirror_backslashes (argv[0]); But this cause my program segfault, since I have such line: scm_boot_guile(0, {NULL}, &guilemain, NULL); According to C11, it's allowed[1]. argv[argc] should be NULL. If the value of argc is greater than zero, the string pointed to by argv[0] represents the program name. But if argc is zero, argv[0] will be NULL, so we have to check it first to avoid segfault. Attached patch fixed this. [1] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf