diff --git a/src/events/RESS/review/firstPeriod.js b/src/events/RESS/review/firstPeriod.js
index 574f7b9ef8994de29441cd9e4092174bf1750eea..9205e70b96c8f046858231d2703b1febec9f9511 100644
--- a/src/events/RESS/review/firstPeriod.js
+++ b/src/events/RESS/review/firstPeriod.js
@@ -95,6 +95,12 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 		function demonstrate() {
 			const frag = new DocumentFragment();
 			let r = [];
+			let restoreChastity = 0;
+			if (slave.chastityVagina === 1) {
+				r.push(`You unlock ${his} chastity belt and set it aside, ${his} ${canSee(slave) ? `eyes widening as ${he} watches` : `body stiffening as ${he} feels`} your movements.`);
+				slave.chastityVagina = 0;
+				restoreChastity = 1;
+			}
 			r.push(`You tell ${him} that ${he} is just becoming a woman, and to celebrate, you are going to put a child in ${him}.`);
 			if (!canTalk(slave)) {
 				r.push(`${He} gasps and rubs a hand across ${his} stomach.`);
@@ -131,6 +137,11 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 			WombImpregnate(slave, slave.pregType, -1, 1);
 			r.push(VCheck.Vaginal(slave, 1));
 
+			if (restoreChastity) {
+				r.push(`The deed done, you return ${his} chastity belt to its accustomed place before allowing ${him} to leave your office.`);
+				slave.chastityVagina = 1;
+			}
+
 			App.Events.addParagraph(frag, r);
 			return frag;
 		}
@@ -138,7 +149,16 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 		function ass() {
 			const frag = new DocumentFragment();
 			let r = [];
-			r.push(`In one swift motion, you pull out a chastity belt and lock it onto ${him}. ${He} gasps as ${he} feels it hug close to ${his} pussy. You explain that ${he} has just become a woman, and thus, will be taking it up the ass until you decide it's time for ${him} to become pregnant.`);
+			if (slave.chastityAnus === 1 && slave.chastityVagina === 1) { // double chastity, remove anal
+				r.push(`In one swift motion, you unlock and detach ${his} anal chastity belt. ${He} gasps at the sudden feeling of freedom at ${his} back door.`);
+			} else if (slave.chastityAnus === 1) { // anal chastity, swap for vaginal
+				r.push(`In a few swift motions, you remove ${his} anal chastity belt and replace it with one encasing ${his} vagina. ${He} gasps as ${he} feels it hug close to ${his} pussy.`);
+			} else if (slave.chastityVagina === 1) { // vaginal chastity, don't remove
+				r.push(`You bring your hand to ${his} chastity belt, feigning dramatically that you might remove it, before 'reconsidering' and pulling your hand away.`);
+			} else { // no chastity, give vaginal
+				r.push(`In one swift motion, you pull out a chastity belt and lock it onto ${him}. ${He} gasps as ${he} feels it hug close to ${his} pussy.`);
+			}
+			r.push(`You explain that ${he} has just become a woman, and thus, will be taking it up the ass until you decide it's time for ${him} to become pregnant.`);
 			if (!canTalk(slave)) {
 				r.push(`${He} rubs a hand across ${his} stomach.`);
 			} else {
@@ -173,6 +193,7 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 			}
 			slave.devotion += 5;
 			slave.chastityVagina = 1;
+			slave.chastityAnus = 0;
 			r.push(VCheck.Anal(slave, 1));
 
 			App.Events.addParagraph(frag, r);