diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index db216a2c4d5a83803c8efe5eec3e7e866e7bf8c6..19f3447b810d43f3f1ba58e71a82cbdf9fd79698 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1,5 +1,4 @@
-
-**anything labeled accepts string will return any string entered into it**
+**anything labeled accepts string will return any string entered into it**
 
 slaveName:
 
@@ -1722,17 +1721,33 @@ readyOva:
 
 Number of ready to be impregnated ova (override normal cases), default - 0. For delayed impregnations with multiples. Used onetime on next call of the SetPregType widget. After SetPregType use it to override .pregType, it set back to 0 automatically.
 
-broodmother
+superfetation:
+
+Superfetation is condition when pregnancy not block ovulation cycle, so further, second and more impregnantion possible when alredy pregnant. Very rare IRL.
+0 - no
+1 - condition present
+
+ovaImplant:
+
+Ovary implant state and type.
+
+-1 - present, supress natural superfetation (normalize slave with natural superfetation), still allow partial birth.
+0 - no implant
+1 - artifical superfetation and partial birth support.
+2 - ova release on orgasm and partial birth support.  
+
+broodmother:
 
 has the slave been turned into a broodmother
 0 - no
 1 - standard 1 birth/week
 2 - black market 12 births/week
+3 - black market upgrade for implant firmware, to allow change weekly number of ova in range of 1 to 12 in remote surgery block. (broodmotherFetuses change through remote surgery).
 
-broodmotherFetuses
+broodmotherFetuses:
 count of ova that broodmother implant force to release. Should be setted with "broodmother" property together. If broodmother == 0 has no meaning.
 
-broodmotherOnHold
+broodmotherOnHold:
 
 If broodmother implant set to pause it's work.
 1 - implant on pause
diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw
index 6c305f9b833981a304340ab87016af236f46c9ee..ea119fc07877cd1e507dda3466b436959fb1bc50 100644
--- a/src/js/storyJS.tw
+++ b/src/js/storyJS.tw
@@ -311,7 +311,9 @@ window.isFertile = function(slave) {
 
 	WombInit(slave);
 
-	if (slave.womb.length > 0 || slave.broodmother > 0) { /* currently pregnant or broodmother */
+	if (slave.womb.length > 0 && slave.superfetation < 1 && slave.ovaImplant < 1) { /* currently pregnant without superfetation */
+		return false;
+	} else if (slave.broodmother > 0) { /* currently broodmother */
 		return false;
 	} else if (slave.preg < -1) { /* sterile */
 		return false;
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index c08c6b0f73b36c553a87e5b4c6c24e641f628ac1..336b6e9f407631a64bbe3a80ef3b1d652a8295c6 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -304,6 +304,7 @@
 <<set $slaves[$i].births += _curBabies>>
 <<set $slaves[$i].birthsTotal += _curBabies>>
 <<set $birthsTotal += _curBabies>>
+/* this block should be redone - it's not support different fathers in superfetation mothers */
 <<if $slaves[$i].pregSource > 0>>
 	<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>>
 	<<if _babyDaddy != -1>>
@@ -314,14 +315,15 @@
 <<elseif $slaves[$i].pregSource == -1>>
 	<<set $PC.slavesFathered += _curBabies>>
 <</if>>
+/* end of legacy code*/
 
 /* Here support for partial birth cases but if slaves still NOT have broomother implant. Right now remaining babies will be lost, need to add research option for selective births. It should control labor and stop it after ready to birth babies out. Should be Repopulation FS research before broodmothers (their implant obviously have it as a part of functional). */
 <<if $slaves[$i].broodmother == 0>> 
-	<<if $safePartialBirthTech == 1 >>
-		/* nothing right now.*/
-	<<else>>
+	<<if $surgeryUpgrade == 1 || $slaves[$i].ovaImplant != 0 && $csec != 1>> /*support for global or single character only, in case of csec is not possible to continue pregnancy */
+		/* if true - need nothing, birthed babies already in $slaves[$i].curBabies, stillbirth is 0.*/
+	<<else>> 
 		<<set $slaves[$i].curStillBirth = $slaves[$i].womb.length>>
-		<<set WombFlush($slaves[$i])>>
+		<<set WombFlush($slaves[$i])>> /* cleaning rest of superfetation pregnancy if no tech for safe partial birth */
 	<</if>>
 <</if>>
 
@@ -452,7 +454,7 @@ This decriptions can be expanded with more outcomes later. But it's not practica
 
 <<if $csec != 1>> /*all this block only if no c'section used.*/
 
-	<<if $slaves[$i].broodmother > 0>> /*Now this block shown only for broodmothers. They birth only ready children, so _curBabies is effective to se how many birthed this time.*/
+	<<if $slaves[$i].broodmother > 0 || $slaves[$i].womb.length > 0>> /*Now this block shown only for broodmothers or partial birth. They birth only ready children, so _curBabies is effective to see how many birthed this time.*/
 		<br>
 		<<if $diffSize > 1.5 && _curBabies >= 80 >> /*only show if belly lost at least 1/4 of original size.*/
 			<br>
@@ -711,13 +713,27 @@ All in all,
 		<</if>>
 	<</if>>
 <</if>>
+<<if $surgeryUpgrade < 1 && $slaves[$i].curStillBirth > 0 && $slaves[$i].superfetation == 1>>
+	<br>
+	It's possible that @@.mediumorchid; lack of advanced equipment@@ in remote surgery cause loss of unborn<<if $slaves[$i].curStillBirth > 1>>s<</if>> in this case.
+	<br>
+<</if>>
 
 /* ----- Postbirth reactions, mind ------------------------------------------------------------------------------------------- */
 
 <<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
 	<<if $slaves[$i].curStillBirth > 0>>
 		<br><br>
-		/*Here should be descriptions of reactions from losing some of babies.*/
+		/*Here should be descriptions of reactions from losing some of babies, need tweak, only draft for now*/
+		<<if $slaves[$i].devotion > 80>>
+			$He @@.mediumorchid;accept with sorrow@@ you right for using $his body to your ultimate toy and even allow $his unborns to die in process.
+		<<elseif $slaves[$i].devotion > 21>>
+			$He @@.mediumorchid;hates@@ you for using $his body to bear children and allow $his unborns to die.
+			<<set $slaves[$i].devotion -= 20>>
+		<<else>>
+			$He @@.mediumorchid;curses@@ you for using $him as a breeder toy and allow $his unborns to die.
+			<<set $slaves[$i].devotion -= 30>>
+		<</if>>
 	<</if>>
 	<<if ($slaves[$i].devotion) < 20 && (($week-$slaves[$i].weekAcquired-$slaves[$i].pregWeek) > 0)>>
 		<br><br>