Hello, the attached code produces $ ./a.out foo,bar bar while I would expect $ ./a.out foo bar Similar behavior can be produced with `substring', but `substring/copy' will work as expected. So I suspect this is some issue with strings sharing memory and a missing '0' when scm_to_latin1_string calls scm_strdup. David