Hi. Filename completion just doesn't work at all. Using filename-completion-function as a completer for readline always throws an error. Minimal example: (use-modules (ice-9 readline)) (with-readline-completion-function filename-completion-function readline) Hitting TAB when prompted results in: File: Backtrace: In ice-9/boot-9.scm: 1736:10 8 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _) In unknown file: 7 (apply-smob/0 #) In ice-9/boot-9.scm: 718:2 6 (call-with-prompt _ _ #) In ice-9/eval.scm: 619:8 5 (_ #(#(#))) In ice-9/boot-9.scm: 2806:4 4 (save-module-excursion _) 4351:12 3 (_) In ice-9/readline.scm: 213:4 2 (with-readline-completion-function _ #) In unknown file: 1 (%readline "File: " # # #) 0 (filename-completion-function "" #t) ERROR: In procedure filename-completion-function: In procedure scm_from_stringn: NULL string pointer My version of Guile is 3.0.4 but I expect it to fail on every version. It results in an error because the scm_filename_completion_function() calls readline's rl_filename_completion_function() and doesn't check if it returned NULL instead of a string. Readline's info manual states: "The generator function returns '(char *)NULL' to inform 'rl_completion_matches()' that there are no more possibilities left." So it's impossible for the current implementation to work, since scm_filename_completion_function() throws an error every time NULL is returned. I'm attaching a patch. Jakub