copy() will never work right here. Consider that the members cto, ito, pto, etc., also get copied and will all be wrong after the .next field is changed. Should use the constructor for the new type.