diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index a84489de1af..3787e3bea5b 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -148,6 +148,8 @@ Turf and target are seperate in case you want to teleport some distance from a t
return FALSE
if(A.tele_proof)
return TRUE
+ if(!is_teleport_allowed(O.z))
+ return TRUE
else
return FALSE
diff --git a/code/modules/mining/lavaland/loot/hierophant_loot.dm b/code/modules/mining/lavaland/loot/hierophant_loot.dm
index 484e4d1bc3b..13912b1e728 100644
--- a/code/modules/mining/lavaland/loot/hierophant_loot.dm
+++ b/code/modules/mining/lavaland/loot/hierophant_loot.dm
@@ -159,6 +159,9 @@
if(get_dist(user, beacon) <= 2) //beacon too close abort
to_chat(user, "You are too close to the beacon to teleport to it!")
return
+ if(is_in_teleport_proof_area(beacon))
+ to_chat(user, "[src] sparks and fizzles.")
+ return
if(is_blocked_turf(get_turf(beacon), TRUE))
to_chat(user, "The beacon is blocked by something, preventing teleportation!")
return