diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm
index d770e0f30d..619f674969 100644
--- a/code/datums/elements/mob_holder.dm
+++ b/code/datums/elements/mob_holder.dm
@@ -141,7 +141,7 @@
/obj/item/clothing/head/mob_holder/dropped(mob/user)
. = ..()
- if(held_mob && isturf(loc))//don't release on soft-drops
+ if(held_mob && !ismob(loc))//don't release on soft-drops
release()
/obj/item/clothing/head/mob_holder/proc/release()
diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm
index b4306d49a4..603b34ee32 100644
--- a/code/game/machinery/colormate.dm
+++ b/code/game/machinery/colormate.dm
@@ -62,6 +62,8 @@
if(!user.transferItemToLoc(I, src))
to_chat(user, "[I] is stuck to your hand!")
return
+ if(QDELETED(I))
+ return
user.visible_message("[user] inserts [I] into [src]'s receptable.")
inserted = I
@@ -72,6 +74,11 @@
/obj/machinery/gear_painter/AllowDrop()
return FALSE
+/obj/machinery/gear_painter/handle_atom_del(atom/movable/AM)
+ if(AM == inserted)
+ inserted = null
+ return ..()
+
/obj/machinery/gear_painter/AltClick(mob/user)
. = ..()
if(!user.CanReach(src))