I just checked again and found out, that you don't even have to select another player for that. It's enough to delete the original player from the network bubble and create him again and then select the player again. So basically like this:
g_Game.RemoteObjectTreeDelete(player); // Simulates player getting out of the network bubble // Step 2: Trying to restore the old player g_Game.RemoteObjectTreeCreate(player); g_Game.SelectPlayer(sender, player); player.SetFlags(EntityFlags.SYNCHRONIZATION_DIRTY, true);