Roll our own recursive copy that maintains perms