Hi! This morning I found another bug while porting Mes to Guile-3. It looks similar to #43831; compilation with -O2 shows wrong behaviour. Also, this works on Guile-2.2. To reproduce: --8<---------------cut here---------------start------------->8--- 14:02:54 janneke@dundal:~/tmp/bug2 [env] $ guile --no-auto-compile -L . script.scm dumping0: foo 14:03:06 janneke@dundal:~/tmp/bug2 [env] $ guild compile -O1 -o mescc.go mescc.scm wrote `mescc.go' 14:03:33 janneke@dundal:~/tmp/bug2 [env] $ guile --no-auto-compile -L . -C . script.scm dumping0: foo 14:03:42 janneke@dundal:~/tmp/bug2 [env] $ guild compile -O2 -o mescc.go mescc.scm wrote `mescc.go' 14:03:49 janneke@dundal:~/tmp/bug2 [env] $ guile --no-auto-compile -L . -C . script.scm dumping0: foo Backtrace: 1 (primitive-load "/home/janneke/tmp/bug2/script.scm") In mescc.scm: 27:4 0 (with-output-to-file _ #) mescc.scm:27:4: In procedure with-output-to-file: Throw to key `looping' with args `()'. [1]14:03:52 janneke@dundal:~/tmp/bug2 [env] $ --8<---------------cut here---------------end--------------->8--- Greetings, Janneke