diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index bb33da511897c4c9e1c9d4919b9d4d4c476595a4..58409da91dc1ac671cff4fc452bab1c8d416e0e9 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1257,7 +1257,7 @@ broodmotherOnHold
 If broodmother implant set to pause it's work.
 1 - implant on pause
 != 1 - working.
-If broodmother birth her last baby and implant on pause - it's will be passed out. 
+If broodmother birth her last baby and her implant is on pause, she will be in contraception like state. 
 
 broodmotherCountDown:
 
diff --git a/src/js/SFJS.tw b/src/js/SFJS.tw
index e7146c2272c394d7b9a92e0471f959dcd18f40ba..d016e96b98ec6fb448bb8e1061c6bcde578d654a 100644
--- a/src/js/SFJS.tw
+++ b/src/js/SFJS.tw
@@ -1,9 +1,9 @@
 :: SFJS [script]
 
 window.simpleWorldEconomyCheck = function() {
-	var n1 = 7;
-	var n2 = 5;
-	var n3 = 3;
+	var n1 = 4;
+	var n2 = 3;
+	var n3 = 2;
 	if(State.variables.economy === .5) {
 		return n1;
 	} else if(State.variables.economy === 1.5) {
diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw
index b18a5bdd102c6113692f6dc4899142d1f3df969e..bac88df0e53003ecf645b88ed61c7b1db2086e96 100644
--- a/src/js/storyJS.tw
+++ b/src/js/storyJS.tw
@@ -293,7 +293,7 @@ window.canImpreg = function(slave1, slave2) {
 window.isFertile = function(slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.preg > 0) { /* currently pregnant */
+	} else if (slave.womb.length > 0 || slave.broodmother > 0) { /* currently pregnant or broodmother */
 		return false;
 	} else if (slave.preg < -1) { /* sterile */
 		return false;
diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw
index 7e357a751537aa4ed88f2ffe99c235731850bed3..fca33e0d73fa4e0116bca8ad377529204d83be0b 100644
--- a/src/js/wombJS.tw
+++ b/src/js/wombJS.tw
@@ -47,7 +47,7 @@ window.WombInit = function(actor) //Init womb system.
     {
         WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg);
     }
-    else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used.
+    else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0 && actor.broodmotherOnHold < 1) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used.
     {
         var i, pw = actor.preg, bCount, bLeft;
         if (pw > 40)
@@ -249,6 +249,23 @@ window.WombNormalizePreg = function(actor)
 {
 //    console.log("New actor: " + actor.slaveName + " ===============" + actor.name);
     WombInit(actor);
+
+    if (actor.womb.length == 0 && actor.broodmother >= 1) // this is broodmother on hold.
+    {
+        actor.pregType = 0; 
+        actor.pregKnown = 0;
+        
+        if (actor.preg > 0)
+            actor.preg = 0.1; //to avoid legacy code conflicts - broodmother on hold can't be impregnated, but she not on normal contraceptives. So we set this for special case.
+        
+        if (actor.pregSource > 0)
+            actor.pregSource = 0;
+
+        if (actor.pregWeek > 0) 
+            actor.pregWeek = 0;
+            
+        actor.broodmotherCountDown = 0;
+    }
     
     if (actor.womb.length > 0)
     {
@@ -272,7 +289,7 @@ window.WombNormalizePreg = function(actor)
         actor.pregType = actor.womb.length;
         actor.pregSource = actor.womb[0].fatherID;
     } 
-    else if (actor.womb.length == 0 && actor.broodmother < 1)
+    else if (actor.womb.length == 0 && actor.broodmother < 1) //not broodmother
     {
 //        console.log("preg fixing");
         actor.pregType = 0;
diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw
index 7261a8d5049ef7d5e2340d3c4260467f09700eaa..7db07e497d988c1b4150da1793f4511f5fede1da 100644
--- a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw
+++ b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw
@@ -312,7 +312,7 @@
 	<<case 7>>
 		Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment).
 	<<case 8>>
-		Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment). The Satellite is now equipped with a basic EMP generator (advanced EMP hardening was applied before the insulation and activation) will "slightly" anger locals until it is deactivated.
+		Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment). The Satellite is now equipped with a basic EMP generator (advanced EMP hardening was applied before the insulation and activation) that will "slightly" anger locals until it is deactivated.
 	<<case 9>>
 		Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer's power by 50% (now can destroy affected equipment). The Satellite is now equipped with an advanced EMP generator by, increasing the AO localization which reduces the quantity of affected equipment.
 	<<case 10>>
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index 7a38d7737b56aa5c9e3275242243c35a0a9b5a08..50667d2bc8bfc8af17347e58e83c74e60ed9906d 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -939,21 +939,11 @@ All in all,
 
 <<if $slaves[$i].broodmother > 0 >>
 	<<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>>
-	<<if $slaves[$i].broodmotherOnHold != 1 && $slaves[$i].womb.length == 0>> /* normally if broodmother is empty and not on hold then implant impregnate her 		immdiately*/
-		<<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 1)>>
-	<</if>>
 	<<if $slaves[$i].broodmotherCountDown > 0 && $slaves[$i].womb.length > 0>> /*do we really finished?*/
 		<<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i]) >> /*age of most new (small) fetus used to correct guessing of remained time.*/
-		/*Really, next block can be changed so implant will can remain inside womb turned off indefinitely. With manual extraction in surgery. But for now I leave it as is.*/
-		<<if $slaves[$i].broodmotherCountDown == 0>>
-			$pronounCap also passed the implant making $object a broodmother alongside the afterbirth.
-			<<set $slaves[$i].preg = 0>>
-			<<set $slaves[$i].pregType = 0>>
-			<<set $slaves[$i].pregSource = 0>>
-			<<set $slaves[$i].pregKnown = 0>>
-			<<set $slaves[$i].pregWeek = -4>>
-			<<set $slaves[$i].broodmother = 0>>
-		<</if>>	
+		<<set $slaves[$i].preg = 0.1>>
+		<<set $slaves[$i].pregType = 0>>
+		<<set $slaves[$i].pregSource = 0>>
 	<</if>>
 <<elseif $slaves[$i].womb.length > 0>>/* Not broodmother, but still has babies, partial birth case.*/
 	<<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> /*now we use most advanced remained fetus as base.*/
diff --git a/src/uncategorized/SFMBarracks.tw b/src/uncategorized/SFMBarracks.tw
index 0baeb4091774f17b32b45bf994bf9afba8f64c19..4fdaf78ec3c64263282f646805879aee9343045f 100644
--- a/src/uncategorized/SFMBarracks.tw
+++ b/src/uncategorized/SFMBarracks.tw
@@ -76,12 +76,12 @@
 		<<set $CashGift = 25000*(Math.max(0.99,$SFAO/10))*$Env>>
 			<<if random(1,100) > 50>>
 				<<if random(1,100) > 50>>
-					_Name nods. "Sure boss," she says, "we had a bit of a haul this week. One of my sergeants convinced a woman to tell us where she had hidden her shit. Cut her up pretty bad, but she told us. Bunch of nice jewelry, I kept a nice piece for myself." She picks up a tablet on the table, tapping a few commands on it. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>."
+					_Name nods. "Sure boss," she says, "we had a bit of a haul this week. One of my sergeants convinced a woman to tell us where she had hidden her shit. Cut her up pretty bad, but she told us. Bunch of nice jewelry, I kept a nice piece for myself." She picks up a tablet on the table, tapping a few commands on it. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>."
 				<<else>>
-					_Name smiles widely. "Sure boss," she says, "we pulled in some good shit this week. One of the boys found a real nice family hiding in a basement. 18-year old triplets. Brought in a good bit of cash." She picks up a tablet on the table, tapping a few commands on it. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>."
+					_Name smiles widely. "Sure boss," she says, "we pulled in some good shit this week. One of the boys found a real nice family hiding in a basement. 18-year old triplets. Brought in a good bit of cash." She picks up a tablet on the table, tapping a few commands on it. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>."
 				<</if>>
 			<<else>>
-				_Name picks up a tablet. "Sure boss," she says, "we had a nice score this week. Looters fucked up and left a bunch of nice shit behind." She taps a few commands on the tablet. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>."
+				_Name picks up a tablet. "Sure boss," she says, "we had a nice score this week. Looters fucked up and left a bunch of nice shit behind." She taps a few commands on the tablet. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>."
 			<</if>>
 			<<set $securityForceGiftToken = 1>>
 			<<set $cash += $CashGift>>
diff --git a/src/uncategorized/autosurgerySettings.tw b/src/uncategorized/autosurgerySettings.tw
index a2b1d6ab0b43792c53d6c42c6beb427b678fc2f3..937ebbaf1ffcd360e8b49881e500a009611ac028 100644
--- a/src/uncategorized/autosurgerySettings.tw
+++ b/src/uncategorized/autosurgerySettings.tw
@@ -240,6 +240,14 @@ Lip implants:
 </span>
 
 <br><br>
+<<if $bellyImplants >= 1>>	
+	Belly/Uterus implant: ''<span id = "bimpl">no default setting</span>.''
+	<br>
+	<<rbutton "$currentRule.surgery.bellyImplant" "no default setting" "bimpl" "don't do anything">> No changes |
+	<<rbutton "$currentRule.surgery.bellyImplant" "install" "bimpl" "if possible install implant">> Install |
+	<<rbutton "$currentRule.surgery.bellyImplant" "remove" "bimpl" "remove installed implant">> Remove  
+	<br><br>
+<</if>>
 
 Buttock implants:
 <span id = "butt">
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 2d298d219bfc23bd37cf325a063b61960f489ca6..838db590d7c98f798eb61d15f55dd1091889ef07 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -506,6 +506,8 @@ waist.
 $pronounCap's
 <<if $activeSlave.pregKnown > 0>>
 	pregnant.
+<<elseif $activeSlave.womb.length == 0 && $activeSlave.broodmother > 0>>
+	broodmother on hold.
 <<elseif $activeSlave.preg > 0>>
 	showing unusual discomfort as $possessive stomach is inspected. A quick test reveals that @@.lime;$pronoun is pregnant.@@
 	<<set $activeSlave.pregKnown = 1>>
@@ -532,7 +534,7 @@ $pronounCap's
 	//$possessiveCap indenture forbids elective surgery//
 <<elseif $activeSlave.breedingMark == 1>>
 	//You are forbidden from affecting $possessive fertility//
-<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0>>
+<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0 || $activeSlave.broodmother > 0>>
 	//$pronounCap is unable to support an abdominal implant at this time//
 <<elseif $activeSlave.bellyImplant >= 750000>>
 	//$possessiveCap abdominal implant is so far beyond its maximum limit it is at risk of rupturing//
@@ -759,6 +761,16 @@ Work on her sex:
 	<</if>>
 <</if>>
 
+<<if $permaPregImplant == 1>>
+	<<if $activeSlave.broodmother >= 1 >>
+		<<if $activeSlave.womb.length == 0 >>
+			[[Remove a pregnancy generator|Surgery Degradation][$activeSlave.preg = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0,$activeSlave.pregType = 0,$activeSlave.broodmother = 0,$activeSlave.broodmotherFetuses = 0,$activeSlave.broodmotherOnHold = 0,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "pregRemove"]] 
+		<<else>>
+			She is pregnant right now, and her broodmother implant can't be safely extracted.
+		<</if>>
+	<</if>>
+<</if>>
+
 <<if $activeSlave.mpreg == 1>>
 	<<if $activeSlave.preg > 0>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;
diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw
index 0f959eeb97f2ff51115fabcdf89bf6606ce7f1d9..44c4d2f19f324af9c5eb859e5f08048d26f76ca5 100644
--- a/src/uncategorized/rulesAssistant.tw
+++ b/src/uncategorized/rulesAssistant.tw
@@ -1030,6 +1030,24 @@ Buttplugs for other slaves: <span id="buaccessory">''$currentRule.buttplug.''</s
 	<</if>>
 <</for>>
 
+<<if $bellyImplants >= 1>>	
+	<br>
+	Belly implant target volume (if present): ''<span id = "bimpl">no default setting</span>.''
+	<br>
+	<<rbutton "$currentRule.bellyImplantVol" "-1" "bimpl" "no changes">> No changes |
+	<<rbutton "$currentRule.bellyImplantVol" "0" "bimpl" "empty implant">> Empty |
+	<<rbutton "$currentRule.bellyImplantVol" "1500" "bimpl" "early pregnancy">> Small |
+	<<rbutton "$currentRule.bellyImplantVol" "5000" "bimpl" "second trimester pregnancy">> Mid-pregnancy |
+	<<rbutton "$currentRule.bellyImplantVol" "15000" "bimpl" "full-term pregnancy">> Full-term |
+	<<rbutton "$currentRule.bellyImplantVol" "30000" "bimpl" "full-term with twins pregnancy">> Twins |
+	<<rbutton "$currentRule.bellyImplantVol" "45000" "bimpl" "full-term with triplets pregnancy">> Triplets |
+	<<rbutton "$currentRule.bellyImplantVol" "60000" "bimpl" "full-term with quadruplets pregnancy">> Quads |
+	<<rbutton "$currentRule.bellyImplantVol" "75000" "bimpl" "full-term with quintuplets pregnancy">> Quints |
+	<<rbutton "$currentRule.bellyImplantVol" "90000" "bimpl" "full-term with sextuplets pregnancy">> Sextuplets |
+	<<rbutton "$currentRule.bellyImplantVol" "105000" "bimpl" "full-term with septuplets pregnancy">> Septuplets |
+	<<rbutton "$currentRule.bellyImplantVol" "120000" "bimpl" "full-term with octuplets pregnancy">> Octomom 
+<</if>>
+
 <br><br>
 Body modification: [[Cosmetic Rules Assistant Settings][$artificialEyeColor = "",$artificialEyeShape = ""]] | [[Body Mod Rules Assistant Settings]] | [[Autosurgery Settings]]
 
@@ -2464,7 +2482,7 @@ Relationship rules: <span id="relation">''$currentRule.relationshipRules.''</spa
 
 	<<link "Add a new rule">>
 
-		<<set _tempRule = {aphrodisiacs: "no default setting", condition: {id: "false"}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting", eyes: "no default setting", pregSpeed: "nds" }>>
+		<<set _tempRule = {aphrodisiacs: "no default setting", condition: {id: "false"}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0, bellyImplant: "no default setting"}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting", eyes: "no default setting", pregSpeed: "nds", bellyImplantVol: -1}>>
 
 		/* pick an ID higher than the highest ID of any existing rule */
 		<<for _tempRule.ID = 1, _r = 0; _r < _length; _r++>>
diff --git a/src/uncategorized/rulesAutosurgery.tw b/src/uncategorized/rulesAutosurgery.tw
index d32770254fa72fd603daa529ad3003b9c812bbbf..096e2e1847d7bbb3b0808b4c94879e6c3fcec56e 100644
--- a/src/uncategorized/rulesAutosurgery.tw
+++ b/src/uncategorized/rulesAutosurgery.tw
@@ -16,7 +16,9 @@
 	<<for _r = $defaultRules.length-1; _r >= 0; _r-->>
 		<<set _currentRule = $defaultRules[_r]>>
 		<<if (def _currentRule) && (_currentRule.autoSurgery != 0)>>
-			<<set $thisSurgery = _currentRule.surgery>>
+			/* <<set $thisSurgery = _currentRule.surgery>>  THIS IS VERY BAD!!! Fuck up autosurgery rules */
+			<<set $thisSurgery = Object.assign({}, _currentRule.surgery)>> /* We need deep copy, not shallow copy here. */
+			
 			<<set _temp = lastLactationSurgeryRule($slaves[$i], $defaultRules)>>
 			<<if _temp != null>>
 				<<set $thisSurgery.lactation = _temp.surgery.lactation>>
@@ -49,6 +51,10 @@
 			<<if _temp != null>>
 				<<set $thisSurgery.hair = _temp.surgery.hair>>
 			<</if>>
+			<<set _temp = lastSurgeryRuleFor($slaves[$i], $defaultRules, "bellyImplant")>>
+			<<if _temp != null>>
+				<<set $thisSurgery.bellyImplant = _temp.surgery.bellyImplant>>
+			<</if>>
 			<<if ($thisSurgery.hips !== "no default setting") && ($thisSurgery.butt !== "no default setting")>>
 				<<if $slaves[$i].hips < -1>>
 					<<if $thisSurgery.butt > 2>>
@@ -75,7 +81,7 @@
 <</if>>
 
 <<if ndef $thisSurgery>>
-	<<set $thisSurgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0, bodyhair: 0, hair: 0}>>
+	<<set $thisSurgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0, bodyhair: 0, hair: 0, bellyImplant: "no default setting"}>>
 <</if>>
 
 <<set $seed = 0>>
@@ -351,6 +357,33 @@
 	<<set $slaves[$i].hips++, $slaves[$i].hipsImplant++>>
 	<<set $cash -= $surgeryCost>>
 	<<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>>
+<<elseif $slaves[$i].bellyImplant < 0 && $bellyImplants > 0 && $thisSurgery.bellyImplant == "install" && $slaves[$i].womb.length == 0 && $slaves[$i].broodmother == 0>>
+	<<set $slaves[$i].bellyImplant = 100>>
+	<<set $slaves[$i].preg = -2>>
+	<<set $cash -= $surgeryCost>>
+	<<if $activeSlave.ovaries == 1 || $activeSlave.mpreg == 1>>
+		<<set $surgeries.push("belly implant"), $surgeryType = "bellyIn">>
+		<<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>>
+	<<else>>
+		<<set $surgeries.push("male belly implant"), $surgeryType = "bellyInMale">>
+		<<if $PC.medicine >= 100>><<set $slaves[$i].health -= 25>><<else>><<set $slaves[$i].health -= 50>><</if>>
+	<</if>>
+	<<silently>>
+		<<set _tmpNextL = $nextLink, _tmpNextB = $nextButton>>
+		<<include "Surgery Degradation">>
+		<<set $nextLink = _tmpNextL, $nextButton = _tmpNextB>>
+	<</silently>>
+<<elseif $slaves[$i].bellyImplant >= 0 && $thisSurgery.bellyImplant == "remove">>
+	<<set $surgeries.push("belly implant removal"), $surgeryType = "bellyOut">>
+	<<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>>
+	<<set $slaves[$i].preg = 0>>
+	<<set $slaves[$i].bellyImplant = -1>>
+	<<set $cash -= $surgeryCost>>
+	<<silently>>
+		<<set _tmpNextL = $nextLink, _tmpNextB = $nextButton>>
+		<<include "Surgery Degradation">>
+		<<set $nextLink = _tmpNextL, $nextButton = _tmpNextB>>
+	<</silently>>
 <<else>>
 
 <<set $seed = 1>>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 2931ae24004f23ea0311a258606615d2f0712e67..66d6960bfc3bfb33fe8817058ae728601f49792d 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -315,13 +315,13 @@
 		<<if ($week / $slaves[$i].broodmotherFetuses == Math.round($week / $slaves[$i].broodmotherFetuses)) && $slaves[$i].broodmotherFetuses < 1>> 
 			/*one fetus in few week - selection and adding*/
 			<<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 0)>> 
-	<<else>>
+		<<else>>
 			/*one or more fetuses in one week*/
 			<<set WombImpregnate($slaves[$i], Math.floor($slaves[$i].broodmotherFetuses), $slaves[$i].pregSource, 0)>> /* really 0, it's will be advanced right few lines down.*/
-	<</if>>
+		<</if>>
 		<<if $slaves[$i].ovaryAge >= 47>>
 			<<set $slaves[$i].broodmotherOnHold = 1 >>
-			<<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i])>>
+			<<set $slaves[$i].broodmotherCountDown = 37 - WombMinPreg($slaves[$i])>>
 		<</if>>
 	<</if>>
 	
@@ -338,12 +338,6 @@
 
 /* end of preg speed and advance*/
 
-/* dublicate functional commented out
-<<if $slaves[$i].pregWeek < 0>>
-	<<set $slaves[$i].pregWeek++>>
-<</if>>
-*/
-
 <<if $slaves[$i].devotion >= -50>>
 <<if $slaves[$i].energy > 20>>
 	<<if $slaves[$i].physicalAge < $slaves[$i].pubertyAgeXY && $slaves[$i].genes == "XY" && $slaves[$i].energy <= 80>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index a3569b50f6e24951d045de5075999826d48284ea..53c585cb3328bff8ca4c6770edb060fd1e86f8d5 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1039,7 +1039,7 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1
 			<<SetBellySize $activeSlave>>
 		<</if>>
 	<<elseif $activeSlave.broodmotherOnHold == 1>>
-		//Her pregnancy implant is turned off; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// 
+		//Her pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>// 
 		[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] 
 	<<elseif $activeSlave.preg >= -1>>
 	Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index c97ab48a68c2cd5005e73575980c0e8cdaf96c50..b8fc71114d172763e7647244390d10bf46c1d7ff 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -409,12 +409,31 @@ As the remote surgery's long recovery cycle completes,
 			<<replace "#seed">>
 			You simply take her on the spot, using her to your liking and shooting a load deep into her receptive pussy. The implant rewards her upon successful fertilization, so her moans of pleasure as you pull out of her inform you she'll soon <<if $activeSlave.broodmother == 2>>be greatly swollen<<else>>grow heavy<</if>> with @@.lime;your brood.@@
 			<<set $activeSlave.pregSource = -1>>
+			<<set WombImpregnate($activeSlave, 1, -1, 1)>> /* to ensure player fatherinity we need actual fetus here */
 			<<VaginalVCheck>>
 			<</replace>>
 		<</link>>
 		</span>
 	<</if>>
 
+<<case "pregRemove">>
+	<<if ($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>>
+		She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She is @@.red; filled with despair@@ about missing being swollen with life and rubs her flat belly with sorrow. Only one fact slightly soothes her and allows to remain sane - at least she not become infertile and still can get pregnant naturally. As with all surgery @@.red;her health has been slightly affected.@@
+		<<set $activeSlave.trust -= 10>>
+		<<set $activeSlave.devotion -= 30>>
+	<<elseif ($activeSlave.devotion > 50)>>
+		She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She's @@.hotpink;grateful@@ that you allow her body to be free of constant pregnancy stress, and a little nervous about if you will appreciate her enough without such dedication. As with all surgery @@.red;her health has been slightly affected.@@
+		<<set $activeSlave.devotion += 4>>
+	<<elseif ($activeSlave.devotion >= -20)>>
+		She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She understands the realities of her life as a slave, so it isn't much of a shock. As with all surgery @@.red;her health has been slightly affected.@@ She is @@.gold;sensibly fearful@@ of your total power over her body.
+		<<set $activeSlave.trust -= 10>>
+	<<else>>
+		She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She does not understand the realities of her life as a slave at a core level, so she's @@.mediumorchid;terrified and angry@@ that you can change her boby so radically just at your will. As with all surgery @@.red;her health has been slightly affected.@@  She is @@.gold;sensibly fearful@@ of your total power over her body and her now empty womb.
+		<<set $activeSlave.trust -= 15>>
+		<<set $activeSlave.devotion -= 15>>
+	<</if>>
+
+
 <<case "freshOvaries">>
 	<<if $activeSlave.ovaryAge >= 45>>
 		<<if (($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)) || $activeSlave.origin == "She sold herself to you in the hope of someday bearing children.">>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index 6b226d5415058c1d23a8c00fab84c813cf36e8d5..c905ed175bdd070034b5cb607053a6ae1fa032d3 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -674,7 +674,7 @@
 			<<SetBellySize $activeSlave>>
 		<</if>>
 	<<elseif $activeSlave.broodmotherOnHold == 1>>
-	//Her pregnancy implant is turned off; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// 
+	//Her pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>//  
 	[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]]
 	<<elseif ($activeSlave.preg >= -1)>>
 		__Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
@@ -2359,62 +2359,64 @@ This experience
  Call as <<SetPregType>>
  $args[0]: Slave.
 */
-<<widget "SetPregType">>
-	<<if $args[0].ID == -1>>
-		<<if $PC.birthMaster > 0>> /* Predisposed to twins */
-			<<if $PC.fertDrugs == 1>>
-				<<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>>
-			<<else>>
-				<<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>>
-			<</if>>
-			<<if $PC.forcedFertDrugs > 0>>
-				<<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>>
-			<</if>>
-		<<else>>
-			<<if $PC.fertDrugs == 1>>
-				<<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>>
-			<<else>>
-				<<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>>
-			<</if>>
-			<<if $PC.forcedFertDrugs > 0>>
-				<<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>>
-			<</if>>
-		<</if>>
-	<<else>>
-	<<if $args[0].pregType == 0>>
-		<<if ($args[0].drugs == "super fertility drugs")>>
-			<<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>>
-				<<if ($args[0].hormones == 2)>>
-					<<set $args[0].pregType = random(20,29)>>
+<<widget "SetPregType">> /* IMHO rework is posssible. Can be more interesting to play, if this code will take in account more body conditions - age, fat, food, hormone levels, etc. */
+	<<if $args[0].broodmother < 1>> /* Broodmothers should be not processed here. Necessary now.*/
+		<<if $args[0].ID == -1>>
+			<<if $PC.birthMaster > 0>> /* Predisposed to twins */
+				<<if $PC.fertDrugs == 1>>
+					<<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>>
 				<<else>>
-					<<set $args[0].pregType = random(10,29)>>
+					<<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>>
+				<</if>>
+				<<if $PC.forcedFertDrugs > 0>>
+					<<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>>
 				<</if>>
 			<<else>>
-				<<if ($args[0].hormones == 2)>>
-					<<set $args[0].pregType = random(10,29)>>
+				<<if $PC.fertDrugs == 1>>
+					<<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>>
 				<<else>>
-					<<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>>
+					<<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>>
 				<</if>>
-			<</if>>
-		<<elseif ($args[0].drugs == "fertility drugs")>>
-			<<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>>
-				<<if ($args[0].hormones == 2)>>
-					<<set $args[0].pregType = random(4,5)>>
-				<<else>>
-					<<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>>
+				<<if $PC.forcedFertDrugs > 0>>
+					<<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>>
 				<</if>>
-			<<else>>
-				<<if ($args[0].hormones == 2)>>
-					<<set $args[0].pregType = random(2,5)>>
+			<</if>>
+		<<else>>
+			<<if $args[0].pregType == 0>>
+				<<if ($args[0].drugs == "super fertility drugs")>>
+					<<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>>
+						<<if ($args[0].hormones == 2)>>
+							<<set $args[0].pregType = random(20,29)>>
+						<<else>>
+							<<set $args[0].pregType = random(10,29)>>
+						<</if>>
+					<<else>>
+						<<if ($args[0].hormones == 2)>>
+							<<set $args[0].pregType = random(10,29)>>
+						<<else>>
+							<<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>>
+						<</if>>
+					<</if>>
+				<<elseif ($args[0].drugs == "fertility drugs")>>
+					<<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>>
+						<<if ($args[0].hormones == 2)>>
+							<<set $args[0].pregType = random(4,5)>>
+						<<else>>
+							<<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>>
+						<</if>>
+					<<else>>
+						<<if ($args[0].hormones == 2)>>
+							<<set $args[0].pregType = random(2,5)>>
+						<<else>>
+							<<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>>
+						<</if>>
+					<</if>>
 				<<else>>
-					<<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>>
+					<<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>>
 				<</if>>
 			<</if>>
-		<<else>>
-			<<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>>
 		<</if>>
 	<</if>>
-	<</if>>
 <</widget>>
 
 /* 
diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw
index 08e03e2438ef08eb3ea1a069c9ada6c4ff50a5df..d6a182780cba43055ef15d68605b3931ae201daf 100644
--- a/src/utility/raWidgets.tw
+++ b/src/utility/raWidgets.tw
@@ -3541,6 +3541,44 @@ Your brand design is ''$brandDesign.''
 <</if>>
 
 <</if>> /* CLOSES FUCKDOLL CHECK */
+
+/* Here belly implants size control, it's used Surgery Degradation passage to setup devotion and thrust changes. */
+<<if (def _combinedRule.bellyImplantVol) && $args[0].bellyImplant >= 0 && _combinedRule.bellyImplantVol >= 0>>
+	<<set _tmpNextL = $nextLink, _tmpNextB = $nextButton, _as = $activeSlave, $activeSlave = $args[0]>> /* this is hack to use Surgery Degradation without breaking normal End Week routine */
+	<br>
+	<<if $args[0].health > -10 >>
+		<<set _bdiff = _combinedRule.bellyImplantVol - $args[0].bellyImplant>>
+		<<if _bdiff >= 5000 && $activeSlave.bellyPain == 0 && $args[0].health > 50>>
+			$args[0].slaveName's belly is way too smaller then desired size, so she has been directed to have intensive belly implant filling procedures throught this week.
+			<<set $surgeryType = "bellyUp", $activeSlave.bellyImplant += 1000, $activeSlave.bellyPain += 2>>
+			<<silently>>
+				<<include "Surgery Degradation">>
+			<</silently>>
+		<<elseif _bdiff >= 500 && $activeSlave.bellyPain < 2 >>
+			$args[0].slaveName's belly not reached desired size, so she has been directed to have belly implant filling procedures throught this week.
+			<<set $surgeryType = "bellyUp", $activeSlave.bellyImplant += 500, $activeSlave.bellyPain += 1>>
+			<<silently>>
+				<<include "Surgery Degradation">>
+			<</silently>>
+		<<elseif _bdiff <= -5000 >>
+			$args[0].slaveName's belly is way too big, so she has been directed to have intensive belly implant drainig procedures throught this week.
+			<<set $surgeryType = "bellyDown", $activeSlave.bellyImplant -= 1000>>
+			<<silently>>
+				<<include "Surgery Degradation">>
+			<</silently>>
+		<<elseif _bdiff <= -500 >>
+			$args[0].slaveName's belly is too big, so she has been directed to have belly implant drainig procedures throught this week.
+			<<set $surgeryType = "bellyDown", $activeSlave.bellyImplant -= 500>>
+			<<silently>>
+				<<include "Surgery Degradation">>
+			<</silently>>
+		<</if>>
+	<<else>>
+		$args[0].slaveName not heahty enough to safely manipulate her belly implant.
+	<</if>>
+	<<set $nextLink = _tmpNextL, $nextButton = _tmpNextB, $activeSlave = _as>>
+<</if>>
+
 /* < -------------------------------------------------------------------------Drug Assignment -------------------------------------------------------------------------------------------> */
 /* Fertility */
 <<if isFertile($args[0])>>