diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index 59e407ba261..ff60c2be000 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -568,20 +568,21 @@
/obj/item/weapon/rig/equipped(mob/living/carbon/human/M)
..()
+ spawn(1) //equipped() is called BEFORE the item is actually set as the slot
- if(seal_delay > 0 && istype(M) && M.back == src)
- M.visible_message("[M] starts putting on \the [src]...", "You start putting on \the [src]...")
- if(!do_after(M, seal_delay, target = M))
- if(M && M.back == src)
- M.back = null
- M.put_in_hands(src)
- return
+ if(seal_delay > 0 && istype(M) && M.back == src)
+ M.visible_message("[M] starts putting on \the [src]...", "You start putting on \the [src]...")
+ if(!do_after(M, seal_delay, target = M))
+ if(M && M.back == src)
+ M.unEquip(src)
+ M.put_in_hands(src)
+ return
- if(istype(M) && M.back == src)
- M.visible_message("[M] struggles into \the [src].", "You struggle into \the [src].")
- wearer = M
- wearer.wearing_rig = src
- update_icon()
+ if(istype(M) && M.back == src)
+ M.visible_message("[M] struggles into \the [src].", "You struggle into \the [src].")
+ wearer = M
+ wearer.wearing_rig = src
+ update_icon()
/obj/item/weapon/rig/proc/toggle_piece(var/piece, var/mob/living/carbon/human/H, var/deploy_mode, var/force, var/mob/living/user)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index dff3d66a808..5d38700a686 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -518,7 +518,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
if(istype(src, /mob/living/carbon/human)) //If we don't do this hair won't be properly rebuilt.
return
wear_mask = null
- update_inv_wear_mask(0)
+ update_inv_wear_mask()
else if(I == handcuffed)
handcuffed = null
if(buckled && buckled.buckle_requires_restraints)