pushnew screwed up the evaluation order. Fix that, and get the evaluation order correct for multiple-values too.