diff --git a/src/endWeek/saLongTermEffects.js b/src/endWeek/saLongTermEffects.js
index 5994a4517e07ced2ed699c2a1b0f575efd65c5b2..8a663862b9771e30b906f728612338ba427d11e6 100644
--- a/src/endWeek/saLongTermEffects.js
+++ b/src/endWeek/saLongTermEffects.js
@@ -753,10 +753,16 @@ App.SlaveAssignment.longTermEffects = (function() {
 			}
 		}
 		/* NCS helps primary sexual maturity */
-		if (slave.geneMods.NCS === 0) {
-			slave.hormoneBalance = Math.clamp(slave.hormoneBalance, -400, 400);
-		} else {
-			slave.hormoneBalance = Math.clamp(slave.hormoneBalance * 1.5, -400, 400);
+		if (slave.geneMods.NCS === 1) {
+			if (slave.genes === "XX" && slave.hormoneBalance > 0 && slave.pubertyXX === 0) {
+				slave.hormoneBalance = Math.clamp(slave.hormoneBalance * 1.5, -400, 400);
+			} else if (slave.genes === "XY" && slave.hormoneBalance < 0 && slave.pubertyXY === 0) {
+				slave.hormoneBalance = Math.clamp(slave.hormoneBalance * 1.5, -400, 400);
+			} else if ((slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0) {
+				slave.hormoneBalance += 20;
+			} else if (slave.balls > 0 && slave.pubertyXY === 0) {
+				slave.hormoneBalance -= 20;
+			}
 		}
 		/* androgyny really wants to sit around 0 and will fight changes to do so */
 		if (slave.geneticQuirks.androgyny === 2) {
@@ -766,6 +772,7 @@ App.SlaveAssignment.longTermEffects = (function() {
 				slave.hormoneBalance += 10;
 			}
 		}
+		slave.hormoneBalance = Math.clamp(slave.hormoneBalance, -400, 400);
 		let supp = 0;
 		if (slave.drugs !== "hormone blockers") {
 			r.push(App.SlaveAssignment.hormonesEffects(slave));