Hi, ;;;; a very very short example script to describe the problem: ;; open a string port with unicode characters >= 0x0100 (define p (open-input-string "čtyří")) Put the line into a script and start guile. You will see the output: => Backtrace: That's all, and guile will hang in an eternal loop. If you enter the line interactively into the REPL, everything works properly and you can read all characters with (read-char p). ;;;; another very short script, which is possibly the same problem: ;; open a string port and unread a unicode character >= 0x0100 (define p (open-input-string "ibenik")) (unread-char #\Š p) Running these two lines as a script generates an error message: => ERROR: In procedure unread-char: => ERROR: Throw to key `encoding-error' with args `("scm_ungetc" "conversion to port encoding failed" 84 #f #\540)'. If you enter the lines interactively into the REPL, everything works properly and you can read all characters with (read-char p). Cheers, Klaus Stehle ---------------------------- guile --version guile (GNU Guile) 2.0.5 uname -srm Linux 2.6.32-5-amd64 x86_64 echo $LANG de_DE.UTF-8