diff --git a/code/datums/traits/_trait.dm b/code/datums/traits/_trait.dm
index b7cf589ef5..1b51d6a190 100644
--- a/code/datums/traits/_trait.dm
+++ b/code/datums/traits/_trait.dm
@@ -41,6 +41,9 @@
/datum/trait/proc/transfer_mob(mob/living/to_mob)
trait_holder.roundstart_traits -= src
to_mob.roundstart_traits += src
+ if(mob_trait)
+ trait_holder.remove_trait(mob_trait, ROUNDSTART_TRAIT)
+ to_mob.add_trait(mob_trait, ROUNDSTART_TRAIT)
trait_holder = to_mob
on_transfer()
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 2ae8125c5e..8880df8dc5 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -241,6 +241,7 @@
var/datum/species/jelly/slime/spare_datum = spare.dna.species
spare_datum.bodies = origin_datum.bodies
+ H.transfer_trait_datums(spare)
H.mind.transfer_to(spare)
spare.visible_message("[H] distorts as a new body \
\"steps out\" of them.",
@@ -379,6 +380,7 @@
"You stop moving this body...")
else
to_chat(M.current, "You abandon this body...")
+ M.current.transfer_trait_datums(dupe)
M.transfer_to(dupe)
dupe.visible_message("[dupe] blinks and looks \
around.",