diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index b8a2d52f2a..80a556b19a 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -4713,6 +4713,13 @@ void LLAgent::teleportRequest(const U64& region_handle, const LLVector3& pos_loc
// Landmark ID = LLUUID::null means teleport home
void LLAgent::teleportViaLandmark(const LLUUID& landmark_asset_id)
{
+ // FIRE-21576: Prevent TPing home while still logging in if RLVa is enabled
+ if (RlvActions::isRlvEnabled() && LLStartUp::getStartupState() < STATE_STARTED)
+ {
+ return;
+ }
+ //
+
// [RLVa:KB] - Checked: 2010-08-22 (RLVa-1.2.1a) | Modified: RLVa-1.2.1a
// NOTE: we'll allow teleporting home unless both @tplm=n *and* @tploc=n restricted
if ( (rlv_handler_t::isEnabled()) &&
@@ -4828,6 +4835,11 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global)
// [RLVa:KB] - Checked: RLVa-2.0.0
if ( (RlvActions::isRlvEnabled()) && (!RlvUtil::isForceTp()) )
{
+ if (LLStartUp::getStartupState() < STATE_STARTED)
+ {
+ return;
+ }
+
if ( (RlvActions::isLocalTp(pos_global)) ? !RlvActions::canTeleportToLocal(pos_global) : !RlvActions::canTeleportToLocation() )
{
RlvUtil::notifyBlocked(RLV_STRING_BLOCKED_TELEPORT);
@@ -4908,6 +4920,11 @@ void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global, const LLVe
{
if ( (RlvActions::isRlvEnabled()) && (!RlvUtil::isForceTp()) )
{
+ if (LLStartUp::getStartupState() < STATE_STARTED)
+ {
+ return;
+ }
+
if ( (RlvActions::isLocalTp(pos_global)) ? !RlvActions::canTeleportToLocal(pos_global) : !RlvActions::canTeleportToLocation() )
{
RlvUtil::notifyBlocked(RLV_STRING_BLOCKED_TELEPORT);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 605196851f..be6118b00d 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -7054,13 +7054,7 @@ class LLWorldTeleportHome : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- // FIRE-21576: Prevent TPing home while still logging in if RLVa is enabled
- //gAgent.teleportHome();
- if (!rlv_handler_t::isEnabled() || LLStartUp::getStartupState() == STATE_STARTED)
- {
- gAgent.teleportHome();
- }
- //
+ gAgent.teleportHome();
return true;
}
};