anchor.diff:  		\"steps out\" of [H.p_them()].</span>",
   		"<span class='notice'>...and after a moment of disorentation, \
   		you're besides yourself!</span>")
  -
  +	if(H != spare && isslimeperson(spare) && isslimeperson(H))
  +		// transfer the swap-body ui if it's open
  +		var/datum/action/innate/swap_body/this_swap = origin_datum.swap_body
  +		var/datum/action/innate/swap_body/other_swap = spare_datum.swap_body
  +		var/datum/tgui/ui = SStgui.get_open_ui(old, this_swap, "main") || SStgui.get_open_ui(dupe, this_swap, "main")
  +		if(ui)
  +			SStgui.on_close(ui) // basically removes it from lists is all this proc does.
  +			ui.user = spare
  +			ui.src_object = other_swap
  +			SStgui.on_open(ui) // stick it back on the lists
  +			ui.process(force = TRUE)
   
   /datum/action/innate/swap_body
   	name = "Swap Body"
  
positive.code: 				stat = "Conscious"
  			if(UNCONSCIOUS)
  				stat = "Unconscious"
  			if(DEAD)
  				stat = "Dead"
  		var/occupied
  
negative.code: /datum/action/innate/swap_body/proc/swap_to_dupe(datum/mind/M, mob/living/carbon/human/dupe)
  	if(!can_swap(dupe)) //sanity check
  		return
  	var/mob/living/carbon/human/old = M.current
  	if(M.current.stat == CONSCIOUS)
  		M.current.visible_message("<span class='notice'>[M.current] \
  			stops moving and starts staring vacantly into space.</span>",
  