diff --git a/src/js/pregJS.tw b/src/js/pregJS.tw
index 1688a4707a2381a842433fb0bbcbc759819f902c..3cbec66b5cd67577922a0e93e5d464d830b7986b 100644
--- a/src/js/pregJS.tw
+++ b/src/js/pregJS.tw
@@ -213,12 +213,12 @@ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) {
 
 window.getIncubatorReserved = function(slaves) {
 	
-	return WombGetGenericReserve("incubator");
+	return FetusGlobalReserveCount("incubator");
 }
 
 window.getNurseryReserved = function (slaves) {
 
-	return WombGetGenericReserve("nursery");
+	return FetusGlobalReserveCount("nursery");
 }
 
 /* not to be used until that last part is defined. It may become slave.boobWomb.volume or some shit */
diff --git a/src/js/removeActiveSlave.tw b/src/js/removeActiveSlave.tw
index e8ea98fbe9a2aef89d9552ef01caeef819016866..61beadd6deb135fd11a90ff091e5366f3ed5255e 100644
--- a/src/js/removeActiveSlave.tw
+++ b/src/js/removeActiveSlave.tw
@@ -13,10 +13,10 @@ window.removeActiveSlave = function removeActiveSlave() {
 	if (V.PC.pregSource === V.missingParentID) {
 		missing = true;
 	}
-	if (V.activeSlave.reservedChildren > 0) {
-		V.reservedChildren -= V.activeSlave.reservedChildren;
-		V.reservedChildrenNursery -= V.activeSlave.reservedChildrenNursery;
-	}
+	
+	V.reservedChildren = FetusGlobalReserveCount("incubator");
+	V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
+
 	if (V.PC.mother === AS_ID) {
 		V.PC.mother = V.missingParentID;
 		missing = true;
diff --git a/src/npc/abort.tw b/src/npc/abort.tw
index cff6b49f636efb705c652c9e54f789d7e1f69453..124c46ac09fe5d5610d503271f2842066cb4a668 100644
--- a/src/npc/abort.tw
+++ b/src/npc/abort.tw
@@ -32,12 +32,9 @@ The remote surgery makes aborting a pregnancy quick and efficient. $activeSlave.
 
 <<if lastPregRule($activeSlave,$defaultRules)>><<set $activeSlave.preg = -1>><<else>><<set $activeSlave.preg = 0>><</if>>
 
-<<if $activeSlave.reservedChildren > 0>>
-	<<set $reservedChildren -= $activeSlave.reservedChildren>>
-<</if>>
-<<if $activeSlave.reservedChildrenNursery > 0>>
-	<<set $reservedChildrenNursery -= $activeSlave.reservedChildrenNursery>>
-<</if>>
+<<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
+<<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
+
 <<set $activeSlave.pregType = 0>>
 <<set $activeSlave.pregSource = 0>>
 <<set $activeSlave.pregKnown = 0>>
diff --git a/src/npc/agent/agentCompany.tw b/src/npc/agent/agentCompany.tw
index 367d627ffea4edf9e148607bac9e2707f0551d30..0bac9e041d39c0a42aaf7d6ee20b1859a92752b8 100644
--- a/src/npc/agent/agentCompany.tw
+++ b/src/npc/agent/agentCompany.tw
@@ -4,15 +4,8 @@
 
 <<= assignJob($activeSlave, "live with your agent")>>
 
-<<if $activeSlave.reservedChildren > 0>>
-	<<set $reservedChildren -= $activeSlave.reservedChildren>>
-	<<set $activeSlave.reservedChildren = 0>>
-<</if>>
-
-<<if $activeSlave.reservedChildrenNursery > 0>>
-	<<set $reservedChildrenNursery -= $activeSlave.reservedChildrenNursery>>
-	<<set $activeSlave.reservedChildrenNursery = 0>>
-<</if>>
+<<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
+<<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
 
 <<if $activeSlave.rivalry > 0>>
 	<<set _i = $slaveIndices[$activeSlave.rivalryTarget]>>
diff --git a/src/npc/agent/agentWorkaround.tw b/src/npc/agent/agentWorkaround.tw
index c4f8a66dc0d12b39b249c355ce6754f205850056..f2796ae4c71573d323e14fe57c48e3bbfd96a8ec 100644
--- a/src/npc/agent/agentWorkaround.tw
+++ b/src/npc/agent/agentWorkaround.tw
@@ -4,15 +4,8 @@
 
 <<= assignJob($slaves[$i], "be your agent")>>
 
-<<if $slaves[$i].reservedChildren > 0>>
-	<<set $reservedChildren -= $slaves[$i].reservedChildren>>
-	<<set $slaves[$i].reservedChildren = 0>>
-<</if>>
-
-<<if $slaves[$i].reservedChildrenNursery > 0>>
-	<<set $reservedChildrenNursery -= $slaves[$i].reservedChildrenNursery>>
-	<<set $slaves[$i].reservedChildrenNursery = 0>>
-<</if>>
+<<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
+<<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
 
 <<if $slaves[$i].rivalry > 0>>
 	<<set _i = $slaveIndices[$slaves[$i].rivalryTarget]>>
diff --git a/src/pregmod/csec.tw b/src/pregmod/csec.tw
index 114b423919028c866d1d1748d318145e7bec6492..7641276b5f2e3d878553ce82ae5f61f7ecc9c649 100644
--- a/src/pregmod/csec.tw
+++ b/src/pregmod/csec.tw
@@ -48,7 +48,7 @@
 <<set _incubated = 0>>
 <<set _oldDevotion = $activeSlave.devotion>>
 
-<<set _cToIncub = 0, _origReserve = $activeSlave.reservedChildren>> 
+<<set _cToIncub = 0, _origReserve = WombReserveCount($activeSlave, "incubator")>> 
 <<if _origReserve > 0 && _curBabies > 0>> /*Do we need incubator checks?*/
 	<<if _curBabies >= _origReserve >>
 		/*adding normal*/
@@ -63,7 +63,7 @@
 <</if>>
 
 /*this block is the same as the one above, with variables for the nursery instead*/
-<<set _cToNursery = 0, _origReserveNursery = $activeSlave.reservedChildrenNursery>> 
+<<set _cToNursery = 0, _origReserveNursery = WombReserveCount($activeSlave, "nursery")>>  
 <<if _origReserveNursery > 0 && _curBabies > 0>>
 	<<if _curBabies >= _origReserveNursery >>
 		<<set _cToNursery = _origReserveNursery >>
@@ -146,6 +146,9 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 		<<set $missingParent = $missingParentID>>
 		<<set $missingParentID-->>
 	<</if>>
+
+	/* Two "for" blocks below can be simplier now, but leavig it as it's still working, just removing not needed. */
+	
 	<<for _cb = 0; _cb < _cToIncub; _cb++>> /* if there is no reserved children, code in loop will not trigger */
 			<<if _identicalChildGen == 0>>
 				<<if _cb == $mom.curBabies.length-1 && $mom.curBabies.length > 1 && $mom.curBabies[_cb].identical == 1>> /* catch for improperly placed identical twin flag to still generate*/
@@ -169,8 +172,8 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 				<<set _identicalChildGen = 0>>
 			<</if>>
 			<<set _shiftDegree++>>
-			<<set $reservedChildren-- >>
 	<</for>>
+
 	/*copy of above block, with variables for nursery*/
 	<<for _cb = 0; _cb < _cToNursery; _cb++>> /* if there is no reserved children, code in loop will not trigger */
 			<<if _identicalChildGen == 0>>
@@ -195,8 +198,8 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 				<<set _identicalChildGen = 0>>
 			<</if>>
 			<<set _shiftDegree++>>
-			<<set $reservedChildren-- >>
 	<</for>>
+
 	<<if _shiftDegree > 0>>
 		<<for _csec = 0; _csec < _shiftDegree; _csec++>>
 			/* For now, children only get full slave objects when they enter the incubator, and nothing from their unborn self is retained, so that's discarded here. Later we might transfer some data instead. */
@@ -207,6 +210,7 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 <<else>>
 	/*No live babies. Placeholder */
 <</if>>
+
 <<set _curBabies = $activeSlave.curBabies.length >>
 
 <<if _incubated != 2 && _curBabies > 0 >>
@@ -563,3 +567,6 @@ Since $his <<if $activeSlave.mpreg == 1>>ass<<else>>vagina<</if>> was spared fro
 <</if>>
 <<set $activeSlave.cSec = 1>>
 <<run SetBellySize($activeSlave)>>
+<<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
+<<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
+