diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 8f780355db..8899486dc8 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -354,13 +354,11 @@ bool EntityTree::updateEntity(EntityItemPointer entity, const EntityItemProperti // else: We assume the sender really did believe it was the simulation owner when it sent } else if (submittedID == senderID) { // the sender is trying to take or continue ownership - if (entity->getSimulatorID().isNull()) { - // the sender it taking ownership + if (entity->getSimulatorID().isNull() || entity->getSimulatorID() == senderID) { + // the sender is taking or asserting ownership + // but we never grant priorities lower than RECRUIT properties.promoteSimulationPriority(RECRUIT_SIMULATION_PRIORITY); simulationBlocked = false; - } else if (entity->getSimulatorID() == senderID) { - // the sender is asserting ownership - simulationBlocked = false; } else { // the sender is trying to steal ownership from another simulator // so we apply the rules for ownership change: