(if (values #f) #t #f) => #f (if (values #f #f) #t #f) => #t I was surprised to discover this. Although technically not a bug since the scheme spec considers this situation unspecified, it makes using multiple-values unreliable. This affects pp as well (pp (values #f #f)) => #<unknown> Arthur