diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index d7f0b03837..6d7c3036f9 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -82,7 +82,7 @@
else
user.visible_message("[user] hugs [M] to make [M.p_them()] feel better!", \
"You hug [M] to make [M.p_them()] feel better!")
- if(M.resting)
+ if(M.resting && !M.recoveringstam)
M.resting = FALSE
M.update_canmove()
else
@@ -102,7 +102,7 @@
else
user.visible_message("[user] hugs [M] in a firm bear-hug! [M] looks uncomfortable...", \
"You hug [M] firmly to make [M.p_them()] feel better! [M] looks uncomfortable...")
- if(M.resting)
+ if(M.resting && !M.recoveringstam)
M.resting = FALSE
M.update_canmove()
else
diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm
index 6d59bc052a..b9e27c0637 100644
--- a/code/modules/mob/living/carbon/alien/alien_defense.dm
+++ b/code/modules/mob/living/carbon/alien/alien_defense.dm
@@ -21,7 +21,8 @@ In all, this is a lot like the monkey code. /N
switch(M.a_intent)
if ("help")
- resting = 0
+ if(!recoveringstam)
+ resting = 0
AdjustStun(-60)
AdjustKnockdown(-60)
AdjustUnconscious(-60)
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index 5961e4dd71..383edd566a 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -26,7 +26,8 @@
else
if(stat == UNCONSCIOUS)
stat = CONSCIOUS
- resting = 0
+ if(!recoveringstam)
+ resting = 0
adjust_blindness(-1)
update_canmove()
update_damage_hud()
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index dbaf9fb642..e40fda4178 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -311,7 +311,7 @@
AdjustKnockdown(-60)
AdjustUnconscious(-60)
AdjustSleeping(-100)
- if(resting)
+ if(resting && !recoveringstam)
resting = 0
update_canmove()