This reverts commit 7a72ce98. Test problems were due to unspecified order of function arg evaluation.