This bug was traced by Matt Wette and described here: http://lists.gnu.org/archive/html/guile-user/2014-12/msg00023.html
In short, the bug manifests itself when at least two consecutive let forms are used with an assoc list argument which starts with identical elements, and the first appearance gets mutated before the second: (begin (let ((l '((a . X)(b . Y)(c . 7)))) (assoc-set! l 'b 'Z)) (let ((l '((a . X)(b . Y)))) l)) ===> ((a . X) (b . Z)) The issue is known to appear in guile 2.0.11 and 2.0.5