Argument swapping revisited