diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index ea7d57255f..e1b0cbb661 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -342,15 +342,25 @@
/obj/item/restraints/legcuffs/bola/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(..() || !iscarbon(hit_atom))//if it gets caught or the target can't be cuffed,
return//abort
- var/mob/living/carbon/C = hit_atom
+ ensnare(hit_atom)
+
+/**
+ * Attempts to legcuff someone with the bola
+ *
+ * Arguments:
+ * * C - the carbon that we will try to ensnare
+ */
+/obj/item/restraints/legcuffs/bola/proc/ensnare(mob/living/carbon/C)
if(!C.legcuffed && C.get_num_legs(FALSE) >= 2)
visible_message("\The [src] ensnares [C]!")
C.legcuffed = src
forceMove(C)
+ C.update_equipment_speed_mods()
C.update_inv_legcuffed()
SSblackbox.record_feedback("tally", "handcuffs", 1, type)
to_chat(C, "\The [src] ensnares you!")
- C.DefaultCombatKnockdown(knockdown)
+ C.Knockdown(knockdown)
+ playsound(src, 'sound/effects/snap.ogg', 50, TRUE)
/obj/item/restraints/legcuffs/bola/tactical//traitor variant
name = "reinforced bola"
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 3dc199b56d..10a0cd12cf 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -264,7 +264,7 @@
/obj/item/restraints/legcuffs/bola/cult/pickup(mob/living/user)
if(!iscultist(user))
to_chat(user, "The bola seems to take on a life of its own!")
- throw_impact(user)
+ ensnare(user)
/obj/item/restraints/legcuffs/bola/cult/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(iscultist(hit_atom))
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index d9e4f17649..2672688d09 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -336,7 +336,7 @@
linkedsuit.update_icon()
user.update_inv_wear_suit()
user.update_inv_w_uniform()
-
+ user.update_equipment_speed_mods()
/obj/item/clothing/suit/space/hardsuit/syndi
name = "blood-red hardsuit"
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 32e3696bc5..d7fce8a437 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -397,6 +397,7 @@
W.layer = initial(W.layer)
W.plane = initial(W.plane)
changeNext_move(0)
+ update_equipment_speed_mods() // In case cuffs ever change speed
/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break)
if(!I.loc || buckled)
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 122a06b17b..580b0aaaf0 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -147,7 +147,7 @@
/mob/living/carbon/human/equipped_speed_mods()
. = ..()
- for(var/sloties in get_all_slots())
+ for(var/sloties in get_all_slots() - list(l_store, r_store, s_store))
var/obj/item/thing = sloties
. += thing?.slowdown
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index a2a69cb49a..0c69c5c744 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -794,6 +794,13 @@
what.forceMove(drop_location())
log_combat(src, who, "stripped [what] off")
+ if(Adjacent(who)) //update inventory window
+ who.show_inv(src)
+ else
+ src << browse(null,"window=mob[REF(who)]")
+
+ who.update_equipment_speed_mods() // Updates speed in case stripped speed affecting item
+
// The src mob is trying to place an item on someone
// Override if a certain mob should be behave differently when placing items (can't, for example)
/mob/living/stripPanelEquip(obj/item/what, mob/who, where)
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index 8e47d6dbde..f97bc1d7c3 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -21,6 +21,7 @@
C.emote("scream")
SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered)
drop_limb()
+ C.update_equipment_speed_mods() // Update in case speed affecting item unequipped by dismemberment
C.bleed(40)