Alex writes: > Compare the following: > > (let ((x 5) > (x 6)) > (+ x 10)) > > => 16 > > (cl-letf ((x 5) > (x 6)) > (+ x 10)) > > => 15 > > > This also occurs when using non-trivial places: > > (setq v (vector 1 2 3 4 5)) > > (cl-letf (((aref v 1) 10) > ((aref v 1) 20)) > (aref v 1)) > > => 10 > > > I ran into this when using two different setters that sometimes > indirectly modify the same variable. The current behaviour makes the > result of that unexpected. I attached a patch that fixes this issue: