diff --git a/src/004-base/facility.js b/src/004-base/facility.js
index da40be911004fd375ce607ecf7ad06966e2dbd35..322fafb135e8aa2def85971e56230034392807b6 100644
--- a/src/004-base/facility.js
+++ b/src/004-base/facility.js
@@ -40,7 +40,7 @@ App.Entity.Facilities.Job = class {
 		if (!this.desc.fuckdollAccepted && slave.fuckdoll > 0) {
 			r.push(`Fuckdolls can't ${this.desc.assignment} at ${this.facility.name}.`);
 		}
-		if (!this.desc.broodmotherAccepted && slave.preg > 37 && slave.broodmother === 2) {
+		if (!this.desc.broodmotherAccepted && slave.preg >= 36 && slave.broodmother === 2) {
 			r.push(`Birthing broodmothers can't ${this.desc.assignment}.`);
 		}
 		return r;
diff --git a/src/endWeek/saAgent.js b/src/endWeek/saAgent.js
index 33bf3cb3afc241fb0e54bcfbaef6a3847a82c8a4..f7031b142ec4f6e4776e0a366e09281b37ba34d9 100644
--- a/src/endWeek/saAgent.js
+++ b/src/endWeek/saAgent.js
@@ -531,7 +531,7 @@ App.SlaveAssignment.agent = function(slave) {
 		if (slave.birthsTat > -1) {
 			slave.birthsTat++;
 		}
-	} else if ((slave.preg > 37) && (slave.broodmother > 0)) {
+	} else if ((slave.preg >= 37) && (slave.broodmother > 0)) {
 		if (slave.broodmother > 0) {
 			slave.counter.birthsTotal += WombBirthReady(slave, 37);
 			WombBirth(slave, 37);
diff --git a/src/endWeek/saLongTermMentalEffects.js b/src/endWeek/saLongTermMentalEffects.js
index 32e268e85c7d83f117fd7e0b635b19fe2cc59623..2dcc2198169cfb4342f67e2bc0fd7a2b583db5f8 100644
--- a/src/endWeek/saLongTermMentalEffects.js
+++ b/src/endWeek/saLongTermMentalEffects.js
@@ -2161,7 +2161,7 @@ App.SlaveAssignment.longTermMentalEffects = function saLongTermMentalEffects(sla
 							slave.sexualFlaw = "breeder";
 							slave.fetishStrength = 100;
 							FSApproves = 1;
-						} else if (slave.preg > 37 && slave.broodmother > 0) {
+						} else if (slave.preg >= 37 && slave.broodmother > 0) {
 							if (slave.broodmother === 2) {
 								r.push(`${He}'s nearly bursting with life and giving birth constantly,`);
 							} else {
diff --git a/src/endWeek/saPregnancy.js b/src/endWeek/saPregnancy.js
index daa206a85c9efbd7e00be2b2d84231d893a807af..ef80741b563ab763ab57554183a6da752587d278 100644
--- a/src/endWeek/saPregnancy.js
+++ b/src/endWeek/saPregnancy.js
@@ -525,7 +525,7 @@ App.SlaveAssignment.pregnancy = function saPregnancy(slave) {
 				}
 				r.push(`${He} is far enough along that ${he} may go into early labor.`);
 			}
-		} else if (slave.broodmother > 0 && slave.preg > 37) {
+		} else if (slave.broodmother > 0 && slave.preg >= 37) {
 			if (slave.broodmother === 2) {
 				r.push(`${He} often has to stop for breaks to soothe ${his} kicking`);
 				if (slave.geneticQuirks.uterineHypersensitivity === 2) {
diff --git a/src/endWeek/slaveAssignmentReport.js b/src/endWeek/slaveAssignmentReport.js
index bf6fb707f04c71fd01640ef4ad50e1e9b84eeac4..1e2b643426d05a456f9d7a45315e510e41bcb41d 100644
--- a/src/endWeek/slaveAssignmentReport.js
+++ b/src/endWeek/slaveAssignmentReport.js
@@ -384,7 +384,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				} else if (!canHear(slave)) {
 					_printSlaveUnassignedNote(slave, "can no longer hear");
 					V.HeadGirlID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Head Girl any longer`);
 					V.HeadGirlID = 0;
 				} else if (slave.devotion <= 20) {
@@ -403,7 +403,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				} else if (!canTalk(slave)) {
 					_printSlaveUnassignedNote(slave, "can't verbally entice marks");
 					V.RecruiterID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your recruiter any longer`);
 					V.RecruiterID = 0;
 				} else if (!canWalk(slave)) {
@@ -424,7 +424,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (!canTalk(slave)) {
 					_printSlaveUnassignedNote(slave, "can't give whores verbal orders");
 					V.MadamID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Madam any longer`);
 					V.MadamID = 0;
 				} else if (slave.fetish === Fetish.MINDBROKEN) {
@@ -451,7 +451,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (!canTalk(slave)) {
 					_printSlaveUnassignedNote(slave, "can't speak");
 					V.djID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your DJ any longer`);
 					V.djID = 0;
 				} else if (slave.fetish === Fetish.MINDBROKEN) {
@@ -472,7 +472,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (slave.fetish === Fetish.MINDBROKEN) {
 					_printSlaveUnassignedNote(slave, "is mindbroken");
 					V.MilkmaidID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Milkmaid any longer`);
 					V.MilkmaidID = 0;
 				} else if (!canWalk(slave)) {
@@ -523,7 +523,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (!canTalk(slave)) {
 					_printSlaveUnassignedNote(slave, "can't give servants verbal orders");
 					V.StewardessID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Stewardess any longer`);
 					V.StewardessID = 0;
 				} else if (slave.fetish === Fetish.MINDBROKEN) {
@@ -550,7 +550,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (!canTalk(slave)) {
 					_printSlaveUnassignedNote(slave, "can't give verbal instruction");
 					V.SchoolteacherID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Schoolteacher any longer`);
 					V.SchoolteacherID = 0;
 				} else if (slave.fetish === Fetish.MINDBROKEN) {
@@ -574,7 +574,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				} else if (!canHold(slave)) {
 					_printSlaveUnassignedNote(slave, `can no longer handle ${getPronouns(slave).his} charges`);
 					V.WardenessID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Wardeness any longer`);
 					V.WardenessID = 0;
 				} else if (!canSee(slave)) {
@@ -592,7 +592,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (slave.fetish === Fetish.MINDBROKEN) {
 					_printSlaveUnassignedNote(slave, "is mindbroken");
 					V.AttendantID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Attendant any longer`);
 					V.AttendantID = 0;
 				} else if (!canWalk(slave)) {
@@ -613,7 +613,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (slave.fetish === Fetish.MINDBROKEN) {
 					_printSlaveUnassignedNote(slave, "is mindbroken");
 					V.MatronID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Matron any longer`);
 					V.MatronID = 0;
 				} else if (!canWalk(slave)) {
@@ -637,7 +637,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				if (slave.fetish === Fetish.MINDBROKEN) {
 					_printSlaveUnassignedNote(slave, "is mindbroken");
 					V.NurseID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your Nurse any longer`);
 					V.NurseID = 0;
 				} else if (!canWalk(slave)) {
@@ -667,7 +667,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 				} else if (!canHold(slave)) {
 					_printSlaveUnassignedNote(slave, "is no longer able to hold a weapon");
 					V.BodyguardID = 0;
-				} else if (slave.preg > 37 && slave.broodmother === 2) {
+				} else if (slave.preg >= 37 && slave.broodmother === 2) {
 					_printSlaveUnassignedNote(slave, "spends so much time giving birth and laboring that", `${getPronouns(slave).he} cannot effectively serve as your bodyguard any longer`);
 					V.BodyguardID = 0;
 				} else if (!canSee(slave)) {
diff --git a/src/events/PE/concubineInterview.js b/src/events/PE/concubineInterview.js
index 6fe786822d2bf67b42bd64dea9459f33d89c119d..7e74cf7380f8d2f16762666667f519c7b80336c7 100644
--- a/src/events/PE/concubineInterview.js
+++ b/src/events/PE/concubineInterview.js
@@ -192,7 +192,7 @@ App.Events.PEConcubineInterview = class PEConcubineInterview extends App.Events.
 					t.push(speak(`"That's for me and my ${Master} only," ${he} teases, sticking out ${his} tongue.`));
 				}
 			}
-			if (eventSlave.broodmother === 2 && eventSlave.preg > 37) {
+			if (eventSlave.broodmother === 2 && eventSlave.preg >= 36) {
 				t.push(`${He} grunts and struggles to ${hasBothLegs(eventSlave) ? `spread ${his} legs` : `get into position`}. ${speak(`"I'm sorry, another one is coming out right now..."`)} ${he} ${say}s, turning red. The host, at a loss for words, can only watch as`);
 				if (App.Data.clothes.get(eventSlave.clothes).exposure >= 4) {
 					t.push(`a child is born into the world, live on screen.`);
diff --git a/src/events/RESS/review/ageImplant.js b/src/events/RESS/review/ageImplant.js
index cb85f9a79bce424a7d548f10ad6f8edbd5b9eecc..0985c8856279fc61ecb41f10948935187485c8ff 100644
--- a/src/events/RESS/review/ageImplant.js
+++ b/src/events/RESS/review/ageImplant.js
@@ -223,8 +223,8 @@ App.Events.RESSAgeImplant = class RESSAgeImplant extends App.Events.BaseEvent {
 				r.push(`${his} absurd boobs rubbing against your arm.`);
 			}
 			r.push(`${He} cheers lustily at all the right moments, earning repeated crowd focus shots on the big screen; many fans wonder who their ridiculously hot fellow fan is before <span class="reputation inc">recognizing you,</span> putting two and two together, and realizing enviously that ${he}'s your sex slave. Since this is the Free Cities, the big screen gives ${him} more attention rather than cutting away when ${he} intentionally cheers hard enough that ${his} skirt rides up.`);
-			if (eventSlave.broodmother === 2 && eventSlave.preg > 37) {
-				r.push(`The only slightly embarrassing incident is when ${he}'s standing up to rally the crowd behind ${him}, facing away from the game and goes into labor on another of ${his} brood; the contractions forcing ${him} to lean forward onto ${his} r.push(belly);stomach and give the players below a clear view of ${his} crowning child.`);
+			if (eventSlave.broodmother === 2 && eventSlave.preg >= 36) {
+				r.push(`The only slightly embarrassing incident is when ${he}'s standing up to rally the crowd behind ${him}, facing away from the game and goes into labor on another of ${his} brood; the contractions forcing ${him} to lean forward onto ${his} ${belly} stomach and give the players below a clear view of ${his} crowning child.`);
 			} else if (eventSlave.belly < 300000) {
 				r.push(`The only slightly embarrassing incident is when ${he}'s standing up to rally the crowd behind ${him}, facing away from the game and bending down to show cleavage to the stands in such a way that ${his}`);
 				if (eventSlave.butt > 5) {
diff --git a/src/events/RESS/review/sexySuccubus.js b/src/events/RESS/review/sexySuccubus.js
index bcff8a693482d2aaccd285626ab13e79b12084f4..794d83e57610f18bb8af1655b5ae6bb90f2f6b1c 100644
--- a/src/events/RESS/review/sexySuccubus.js
+++ b/src/events/RESS/review/sexySuccubus.js
@@ -276,7 +276,7 @@ App.Events.RESSSexySuccubus = class RESSSexySuccubus extends App.Events.BaseEven
 					Spoken(eventSlave, `"So tight! So full! So Good! I need more! Oh, ${Master}..."`),
 					`${He} may be getting a little too into the fantasy.`
 				);
-				if (eventSlave.broodmother === 2 && eventSlave.preg > 37) {
+				if (eventSlave.broodmother === 2 && eventSlave.preg >= 36) {
 					r.push(
 						`A gush of fluid flows from ${his} pussy, snapping ${him} out of ${his} roleplay.`,
 						Spoken(eventSlave, `"${Master}! I need... One's coming now!"`),
diff --git a/src/interaction/siPhysicalRegimen.js b/src/interaction/siPhysicalRegimen.js
index c07747dd142e8b8cf1be806e0d3d40521060962e..0ac6b2ebeb159cfd4bbf1fe3187f40520fefc636 100644
--- a/src/interaction/siPhysicalRegimen.js
+++ b/src/interaction/siPhysicalRegimen.js
@@ -361,7 +361,7 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 			} else if (slave.broodmotherOnHold === 1) {
 				note += `${His} pregnancy implant is turned off`;
 				if (slave.broodmotherCountDown > 0) {
-					note += `${he} is expected to be completely emptied of ${his} remaining brood in ${slave.broodmotherCountDown} week`;
+					note += `; ${he} is expected to be completely emptied of ${his} remaining brood in ${slave.broodmotherCountDown} week`;
 					if (slave.broodmotherCountDown > 1) {
 						note += `s`;
 					}
@@ -442,7 +442,7 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 							},
 						));
 					}
-					if (slave.preg > 37) {
+					if (slave.preg >= 36) {
 						linkArray.push(App.UI.DOM.passageLink(`Induce mass childbirth`, "BirthStorm"));
 					}
 				} else if (slave.preg > slave.pregData.minLiveBirth) {
diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js
index ea27aa35efcc95d8dc655311c71f4a930ba9d827..dcd1f5a95e77e3525997b16d498cda9927f1f374 100644
--- a/src/js/utilsSlave.js
+++ b/src/js/utilsSlave.js
@@ -2828,7 +2828,7 @@ globalThis.slaveSkillIncrease = function(targetSkill, slave, skillIncrease = 1)
 		if (!App.Data.Careers.Leader[isLeadershipRole[1]].includes(slave.career)) {
 			if (slave.skill[targetSkill] <= 20) {
 				if (slave.skill[targetSkill] + skillIncrease > 20) {
-					r = `<span class="green">${He} now has basic skills as a ${capFirstChar(targetSkill)}</span>`;
+					r = `<span class="green">${He} now has basic skills as a ${capFirstChar(targetSkill)}.</span>`;
 				}
 			} else if (slave.skill[targetSkill] <= 60) {
 				if (slave.skill[targetSkill] + skillIncrease > 60) {
diff --git a/src/npc/children/longChildDescription.js b/src/npc/children/longChildDescription.js
index 424b9917ece1c237196580e2075c81c84b721aca..ad2295d3a44150d1b4352141994467c6b6dc6a1a 100644
--- a/src/npc/children/longChildDescription.js
+++ b/src/npc/children/longChildDescription.js
@@ -839,38 +839,67 @@ App.Facilities.Nursery.LongChildDescription = function(child, {market = 0, event
 					if (pregCollar === 1) {
 						if (child.pregWeek < 0) {
 							r += `"I'm a mommy now!" `;
-						} else if (!child.pregKnown) {
-							r += `"Knock me up!" `;
 						} else if (child.pregKnown) {
 							r += `"${child.pregType === 0 ? `1` : `${child.pregType}`} bab${child.pregType > 1 ? `ies` : `y`} on board!" `;
+						} else if (isFertile(child)) {
+							r += `"Knock me up!" `;
+						} else if (child.vagina < 0 && child.mpreg < 1) {
+							r += `"Womb not detected!" `;
+						} else if ((child.ovaries > 0 || child.mpreg > 0) && child.pubertyXX === 0 && child.physicalAge < V.fertilityAge) {
+							r += `"I'm not old enough to get pregnant yet!" `;
 						} else {
 							r += `"I'm infertile!" `;
 						}
 					} else if (pregCollar === 2) {
-						if (child.pregWeek < 0) {
+						if (child.vagina < 0 && child.mpreg < 1) {
+							r += `"I have no womb!" `;
+						} else if (child.pregWeek < 0) {
 							r += `"${num(child.pregWeek * -1)} week${child.pregWeek !== -1 ? `s` : ``} until I can get preggers again!" `;
 						} else if (child.pregKnown) {
-							r += `"${40 - Math.ceil(child.preg)} weeks till I pop!" `;
-						} else {
+							if (child.preg > 40) {
+								r += `"I'm ${Math.ceil(child.preg) - 40} ${Math.ceil(child.preg) - 40 > 1 ? `weeks` : `week`} overdue!" `;
+							} else if (child.preg > 39) {
+								r += `"I'm due this week!" `;
+							} else {
+								r += `"${40 - Math.ceil(child.preg)} ${40 - Math.ceil(child.preg) > 1 ? `weeks` : `week`} till I pop!" `;
+							}
+						} else if (isFertile(child)) {
 							r += `"My womb needs filling!" `;
+						} else if ((child.ovaries > 0 || child.mpreg > 0) && child.pubertyXX === 0) {
+							r += `"I should be fertile `;
+							if (child.pubertyAgeXX - child.physicalAge > 2) {
+								r += `in about ${Math.round(child.pubertyAgeXX - child.physicalAge)} years!" `;
+							} else if (child.pubertyAgeXX - child.physicalAge > 1) {
+								r += `next year!" `;
+							} else {
+								r += `in about ${Math.ceil((child.pubertyAgeXX * 52 - (child.physicalAge * 52 + child.birthWeek)))} weeks!" `;
+							}
+						} else {
+							r += `"I can't get pregnant right now!" `;
 						}
 					} else {
-						if (child.pregWeek < 0) {
+						if (child.vagina < 0 && child.mpreg < 1) {
+							r += `"I need a womb!" `;
+						} else if (child.pregWeek < 0) {
 							r += `"I can't wait for my belly to swell with life again!" `;
-						} else if (!child.pregKnown) {
+						} else if (child.pregKnown === 1) {
+							if (child.pregSource === -1) {
+								r += `"Womb claimed by my ${getWrittenTitle(child)}!" `;
+							} else if (child.pregSource === -2 || child.pregSource === 0) {
+								r += `"Baby made by slutting around!" `;
+							} else if (child.pregSource === -7) {
+								r += `"My baby was made with science!" `;
+							} else if (child.pregSource === -9) {
+								r += `"Futanari Sisters, now two for the price of one!" `;
+							} else {
+								r += `"Womb claimed by ${daddy}!" `;
+							}
+						} else if (isFertile(child)) {
 							r += `"Put a baby in me today!" `;
-						} else if (child.pregSource === -1) {
-							r += `"Womb claimed by my ${getWrittenTitle(child)}!" `;
-						} else if (child.pregSource === -2 || child.pregSource === 0) {
-							r += `"Baby made by slutting around!" `;
-						} else if (child.pregSource === -7) {
-							r += `"My baby was made with science!" `;
-						} else if (child.pregSource === -9) {
-							r += `"Futanari Sisters, now two for the price of one!" `;
-						} else if (child.pregSource > 0) {
-							r += `"Womb claimed by ${daddy}!" `;
+						} else if ((child.ovaries > 0 || child.mpreg > 0) && child.pubertyXX === 0 && child.physicalAge < V.fertilityAge) {
+							r += `"I'm too young to get pregnant!" `;
 						} else {
-							r += `"Put a baby in me today!" `;
+							r += `"Try to knock me up some other time!" `;
 						}
 					}
 				}
diff --git a/src/npc/descriptions/style/collar.js b/src/npc/descriptions/style/collar.js
index 95d8e02e1b46ba57a36a1815d9069de60bbb0d06..46e363131e0b3578fc4c79bcb1b6d0b066418835 100644
--- a/src/npc/descriptions/style/collar.js
+++ b/src/npc/descriptions/style/collar.js
@@ -24,8 +24,6 @@ App.Desc.collar = function(slave) {
 				if (pregCollar === 1) {
 					if (slave.pregWeek < 0) {
 						r.push(`"I'm a mommy now!"`);
-					} else if (slave.pregKnown === 0) {
-						r.push(`"Knock me up!"`);
 					} else if (slave.pregKnown === 1) {
 						if (slave.pregType === 1) {
 							r.push(`"1 baby`);
@@ -33,11 +31,19 @@ App.Desc.collar = function(slave) {
 							r.push(`"${slave.pregType} babies`);
 						}
 						r.push(`on board!"`);
+					} else if (isFertile(slave)) {
+						r.push(`"Knock me up!"`);
+					} else if (slave.vagina < 0 && slave.mpreg < 1) {
+						r.push(`"Womb not detected!"`);
+					} else if ((slave.ovaries > 0 || slave.mpreg > 0) && slave.pubertyXX === 0 && slave.physicalAge < V.fertilityAge) {
+						r.push(`"I'm not old enough to get pregnant yet!"`);
 					} else {
 						r.push(`"I'm infertile!"`);
 					}
 				} else if (pregCollar === 2) {
-					if (slave.pregWeek < 0) {
+					if (slave.vagina < 0 && slave.mpreg < 1) {
+						r.push(`"I have no womb!"`);
+					} else if (slave.pregWeek < 0) {
 						r.push(`"${num(slave.pregWeek * -1)}`);
 						if (slave.pregWeek === -1) {
 							r.push(`week`);
@@ -47,36 +53,61 @@ App.Desc.collar = function(slave) {
 						r.push(`until I can get preggers again!"`);
 					} else if (slave.pregKnown === 1) {
 						if (slave.broodmother === 2) {
-							if (slave.preg > 37) {
+							if (slave.preg >= 36) {
 								r.push(`"I'm crowning as you read this!"`);
 							} else {
-								r.push(`"${38 - Math.ceil(slave.preg)} weeks till I pop!"`);
+								r.push(`"${37 - Math.ceil(slave.preg)} ${37 - Math.ceil(slave.preg) > 1 ? `weeks` : `week`} till the floodgates open!"`);
 							}
 						} else if (slave.broodmother === 1) {
-							r.push(`"${38 - Math.ceil(slave.preg)} weeks till I pop!"`);
+							if (slave.preg >= 36) {
+								r.push(`"I'll be giving birth this week!"`);
+							} else {
+								r.push(`"${37 - Math.ceil(slave.preg)} ${37 - Math.ceil(slave.preg) > 1 ? `weeks` : `week`} till the birthing begins!"`);
+							}
+						} else if (slave.preg > 40) {
+							r.push(`"I'm ${Math.ceil(slave.preg) - 40} ${Math.ceil(slave.preg) - 40 > 1 ? `weeks` : `week`} overdue!"`);
+						} else if (slave.preg > 39) {
+							r.push(`"I'm due this week!"`);
 						} else {
-							r.push(`"${40 - Math.ceil(slave.preg)} weeks till I pop!"`);
+							r.push(`"${40 - Math.ceil(slave.preg)} ${40 - Math.ceil(slave.preg) > 1 ? `weeks` : `week`} till I pop!"`);
 						}
-					} else {
+					} else if (isFertile(slave)) {
 						r.push(`"My womb needs filling!"`);
+					} else if ((slave.ovaries > 0 || slave.mpreg > 0) && slave.pubertyXX === 0) {
+						r.push(`"I should be fertile`);
+						if (slave.pubertyAgeXX - slave.physicalAge > 2) {
+							r.push(`in about ${Math.round(slave.pubertyAgeXX - slave.physicalAge)} years!"`);
+						} else if (slave.pubertyAgeXX - slave.physicalAge > 1) {
+							r.push(`next year!"`);
+						} else {
+							r.push(`in about ${Math.ceil((slave.pubertyAgeXX * 52 - (slave.physicalAge * 52 + slave.birthWeek)))} weeks!"`);
+						}
+					} else {
+						r.push(`"I can't get pregnant right now!"`);
 					}
 				} else {
-					if (slave.pregWeek < 0) {
+					if (slave.vagina < 0 && slave.mpreg < 1) {
+						r.push(`"I need a womb!"`);
+					} else if (slave.pregWeek < 0) {
 						r.push(`"I can't wait for my belly to swell with life again!"`);
-					} else if (slave.pregKnown === 0) {
+					} else if (slave.pregKnown === 1) {
+						if (slave.pregSource === -1) {
+							r.push(`"Womb claimed by my ${getWrittenTitle(slave)}!"`);
+						} else if (slave.pregSource === 0 || slave.pregSource === -2 || slave.pregSource === -5) {
+							r.push(`"Baby made by slutting around!"`);
+						} else if (slave.pregSource === -7) {
+							r.push(`"My baby was made with science!"`);
+						} else if (slave.pregSource === -9) {
+							r.push(`"Futanari Sisters, now two for the price of one!"`);
+						} else {
+							r.push(`"Womb claimed by ${daddy}!"`);
+						}
+					} else if (isFertile(slave)) {
 						r.push(`"Put a baby in me today!"`);
-					} else if (slave.pregSource === -1) {
-						r.push(`"Womb claimed by my ${getWrittenTitle(slave)}!"`);
-					} else if (slave.pregSource === 0 || slave.pregSource === -2 || slave.pregSource === -5) {
-						r.push(`"Baby made by slutting around!"`);
-					} else if (slave.pregSource === -7) {
-						r.push(`"My baby was made with science!"`);
-					} else if (slave.pregSource === -9) {
-						r.push(`"Futanari Sisters, now two for the price of one!"`);
-					} else if (slave.pregSource > 0) {
-						r.push(`"Womb claimed by ${daddy}!"`);
+					} else if ((slave.ovaries > 0 || slave.mpreg > 0) && slave.pubertyXX === 0 && slave.physicalAge < V.fertilityAge) {
+						r.push(`"I'm too young to get pregnant!"`);
 					} else {
-						r.push(`"Put a baby in me today!"`);
+						r.push(`"Try to knock me up some other time!"`);
 					}
 				}
 			}
diff --git a/src/npc/descriptions/womb/pregnancy.js b/src/npc/descriptions/womb/pregnancy.js
index 4fddba9d0b3217321c2d4b7e2eb225526222bba5..1beb67819a43c2f375eef412e04e1e6febaa65cd 100644
--- a/src/npc/descriptions/womb/pregnancy.js
+++ b/src/npc/descriptions/womb/pregnancy.js
@@ -351,7 +351,7 @@ App.Desc.pregnancy = function(slave, descType = DescType.NORMAL) {
 		r.push(`${His} period is late.`);
 	}
 	if (slave.preg + 5 <= slave.pregWeek && slave.preg <= slave.pregData.normalBirth + 2 && slave.bellyPreg >= 100) {
-		r.push(`Despite being pregnant for ${slave.pregWeek} weeks,`);
+		r.push(`Despite having been pregnant for ${slave.pregWeek} weeks,`);
 		if (slave.broodmother > 0) {
 			if (slave.broodmotherOnHold > 0) {
 				r.push(`${he} will be pregnant for another ${slave.broodmotherCountDown} weeks while ${his} remaining implant-induced pregnancies come to term.`);
@@ -391,7 +391,7 @@ App.Desc.pregnancy = function(slave, descType = DescType.NORMAL) {
 		if (slave.preg > slave.pregData.minLiveBirth && slave.preg >= slave.pregWeek + 10) {
 			r.push(`Even though ${he} is a mere ${slave.pregWeek} weeks along, ${his} pregnancy is at its end.`);
 		} else if (slave.preg >= slave.pregWeek + (slave.pregData.normalBirth / 2.66)) {
-			r.push(`Despite being pregnant for only ${slave.pregWeek} weeks,`);
+			r.push(`Despite having been pregnant for only ${slave.pregWeek} weeks,`);
 			if (slave.preg === slave.pregWeek * 2) {
 				r.push(`${he} could shockingly pass for a girl twice as far along.`);
 			} else if (slave.preg === slave.pregWeek * 4) {
@@ -400,7 +400,7 @@ App.Desc.pregnancy = function(slave, descType = DescType.NORMAL) {
 				r.push(`${he} shockingly looks like a girl on ${his} ${ordinalSuffix(Math.round(slave.preg))} week of pregnancy.`);
 			}
 		} else if (slave.preg >= slave.pregWeek + (slave.pregData.normalBirth / 4)) {
-			r.push(`Despite being pregnant for only ${slave.pregWeek} weeks,`);
+			r.push(`Despite having been pregnant for only ${slave.pregWeek} weeks,`);
 			if (slave.preg === slave.pregWeek * 2) {
 				r.push(`${he} could surprisingly pass for a girl twice as far along.`);
 			} else if (slave.preg === slave.pregWeek * 4) {
@@ -409,7 +409,7 @@ App.Desc.pregnancy = function(slave, descType = DescType.NORMAL) {
 				r.push(`${he} surprisingly looks like a girl on ${his} ${ordinalSuffix(Math.round(slave.preg))} week of pregnancy.`);
 			}
 		} else if (slave.preg >= slave.pregWeek + (slave.pregData.normalBirth / 8)) {
-			r.push(`Despite being pregnant for only ${slave.pregWeek} weeks,`);
+			r.push(`Despite having been pregnant for only ${slave.pregWeek} weeks,`);
 			if (slave.preg === slave.pregWeek * 2) {
 				r.push(`${he} could pass for a girl twice as far along.`);
 			} else if (slave.preg === slave.pregWeek * 4) {
@@ -418,7 +418,7 @@ App.Desc.pregnancy = function(slave, descType = DescType.NORMAL) {
 				r.push(`${he} looks like a woman on ${his} ${ordinalSuffix(Math.round(slave.preg))} week of pregnancy.`);
 			}
 		} else {
-			r.push(`Despite being pregnant for only ${slave.pregWeek} weeks, ${his} pregnancy is larger than anticipated.`);
+			r.push(`Despite having been pregnant for only ${slave.pregWeek} weeks, ${his} pregnancy is larger than anticipated.`);
 		}
 	}
 	if (slave.pregKnown === 1 && descType !== DescType.MARKET) {
diff --git a/src/npc/descriptions/womb/superfetation.js b/src/npc/descriptions/womb/superfetation.js
index f1841349f2e6cc05bd2836a0374bf4d2dd6a4cea..6fbf9674f3c15225b93c98c840fddf74a4a77a17 100644
--- a/src/npc/descriptions/womb/superfetation.js
+++ b/src/npc/descriptions/womb/superfetation.js
@@ -65,7 +65,7 @@ App.Desc.superfetation = function(slave, descType) {
 					r.push(`${was} fathered by ${daddyName(slaveWD.litterData[litCount][0].fatherID)}'s seed,`);
 				}
 			} else {
-				r.push(`${is} too young to tell the father of,`);
+				r.push(`${is} too young to tell the father of.`);
 			}
 		}
 	}