subtle change to _need_butler logic to ensure correct result in mixed-type contexts