diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm
index 30cab2256e..101390b3d6 100644
--- a/code/modules/mob/living/carbon/human/appearance.dm
+++ b/code/modules/mob/living/carbon/human/appearance.dm
@@ -27,6 +27,13 @@
update_dna()
return 1
+/mob/living/carbon/human/proc/change_gender_identity(var/identifying_gender)
+ if(src.identifying_gender == identifying_gender)
+ return
+
+ src.identifying_gender = identifying_gender
+ return 1
+
/mob/living/carbon/human/proc/change_hair(var/hair_style)
if(!hair_style)
return
diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm
index 293df93215..1fb7b6c300 100644
--- a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm
+++ b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm
@@ -130,8 +130,13 @@ var/list/wrapped_species_by_ref = list()
if(!new_gender)
return
+ var/new_gender_identity = input("Please select a gender Identity.", "Shapeshifter Gender Identity") as null|anything in list(FEMALE, MALE, NEUTER, PLURAL)
+ if(!new_gender_identity)
+ return
+
visible_message("\The [src]'s form contorts subtly.")
change_gender(new_gender)
+ change_gender_identity(new_gender_identity)
/mob/living/carbon/human/proc/shapeshifter_select_shape()
diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
index 5eae3da61e..863fb7d029 100644
--- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm
+++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
@@ -97,17 +97,25 @@ var/datum/species/shapeshifter/promethean/prometheans
else
H.equip_to_slot_or_del(L, slot_in_backpack)
-/datum/species/shapeshifter/promethean/hug(var/mob/living/carbon/human/H,var/mob/living/target)
+/datum/species/shapeshifter/promethean/hug(var/mob/living/carbon/human/H, var/mob/living/target)
var/t_him = "them"
- switch(target.gender)
- if(MALE)
- t_him = "him"
- if(FEMALE)
- t_him = "her"
+ if(ishuman(target))
+ var/mob/living/carbon/human/T = target
+ switch(T.identifying_gender)
+ if(MALE)
+ t_him = "him"
+ if(FEMALE)
+ t_him = "her"
+ else
+ switch(target.gender)
+ if(MALE)
+ t_him = "him"
+ if(FEMALE)
+ t_him = "her"
H.visible_message("\The [H] glomps [target] to make [t_him] feel better!", \
- "You glomps [target] to make [t_him] feel better!")
+ "You glomp [target] to make [t_him] feel better!")
H.apply_stored_shock_to(target)
/datum/species/shapeshifter/promethean/handle_death(var/mob/living/carbon/human/H)
@@ -171,11 +179,11 @@ var/datum/species/shapeshifter/promethean/prometheans
return
var/t_she = "She is"
- if(H.gender == MALE)
+ if(H.identifying_gender == MALE)
t_she = "He is"
- else if(H.gender == PLURAL)
+ else if(H.identifying_gender == PLURAL)
t_she = "They are"
- else if(H.gender == NEUTER)
+ else if(H.identifying_gender == NEUTER)
t_she = "It is"
switch(stored_shock_by_ref["\ref[H]"])