diff --git a/interface/src/ui/overlays/OverlayPanel.cpp b/interface/src/ui/overlays/OverlayPanel.cpp index 3d7b93822e..7db2c6f8a2 100644 --- a/interface/src/ui/overlays/OverlayPanel.cpp +++ b/interface/src/ui/overlays/OverlayPanel.cpp @@ -170,9 +170,13 @@ void OverlayPanel::applyTransformTo(Transform& transform, bool force) { transform.setTranslation(DependencyManager::get()->getMyAvatar() ->getPosition()); } else if (!_anchorPositionBindEntity.isNull()) { - transform.setTranslation(DependencyManager::get() - ->getEntityTree()->findEntityByID(_anchorPositionBindEntity) - ->getPosition()); + EntityTreePointer entityTree = DependencyManager::get()->getEntityTree(); + entityTree->withReadLock([&] { + EntityItemPointer foundEntity = entityTree->findEntityByID(_anchorPositionBindEntity); + if (foundEntity) { + transform.setTranslation(foundEntity->getPosition()); + } + }); } else { transform.setTranslation(getAnchorPosition()); } @@ -181,9 +185,13 @@ void OverlayPanel::applyTransformTo(Transform& transform, bool force) { transform.setRotation(DependencyManager::get()->getMyAvatar() ->getOrientation()); } else if (!_anchorRotationBindEntity.isNull()) { - transform.setRotation(DependencyManager::get() - ->getEntityTree()->findEntityByID(_anchorRotationBindEntity) - ->getRotation()); + EntityTreePointer entityTree = DependencyManager::get()->getEntityTree(); + entityTree->withReadLock([&] { + EntityItemPointer foundEntity = entityTree->findEntityByID(_anchorRotationBindEntity); + if (foundEntity) { + transform.setRotation(foundEntity->getRotation()); + } + }); } else { transform.setRotation(getAnchorRotation()); }