diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 52702868f7..cefc471d08 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -58,8 +58,13 @@
"You climb out of [src]!")
open_machine()
+/obj/machinery/sleeper/Exited(atom/movable/user)
+ if (!state_open && user == occupant)
+ container_resist(user)
+
/obj/machinery/sleeper/relaymove(mob/user)
- container_resist(user)
+ if (!state_open)
+ container_resist(user)
/obj/machinery/sleeper/open_machine()
if(!state_open && !panel_open)
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index a07d8d8d60..c7865ac576 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -28,7 +28,10 @@
disrupt()
/obj/item/device/chameleon/attack_self(mob/user)
- toggle(user)
+ if (isturf(user.loc) || istype(user.loc, /obj/structure) || active_dummy)
+ toggle(user)
+ else
+ to_chat(user, "You can't use [src] while inside something.")
/obj/item/device/chameleon/afterattack(atom/target, mob/user , proximity)
if(!proximity)