diff --git a/src/endWeek/saLongTermEffects.js b/src/endWeek/saLongTermEffects.js
index 0ec051747d259c26ad0c05e3f07d097bc339e370..d227fae9f10f2a753626e38503c6ecb598db95ae 100644
--- a/src/endWeek/saLongTermEffects.js
+++ b/src/endWeek/saLongTermEffects.js
@@ -2249,8 +2249,7 @@ App.SlaveAssignment.longTermEffects = (function() {
 				if (slave.pregSource !== -1 && slave.pregSource !== -6) {
 					r.push(`${slave.slaveName}'s weekly health checkup revealed ${he} is pregnant with an unacceptable child. <span class="elites loss">Its life has been terminated, you have been fined ${cashFormat(100000)}, and your rep among the Elite has been severely damaged.</span>`);
 					TerminatePregnancy(slave);
-					slave.counter.abortions++;
-					V.abortionsTotal++;
+					actX(slave, "abortions");
 					cashX(-100000, "fines", slave);
 					V.failedElite += 150;
 					if (slave.abortionTat > -1) {
@@ -2444,8 +2443,7 @@ App.SlaveAssignment.longTermEffects = (function() {
 							}
 						}
 						TerminatePregnancy(slave);
-						slave.counter.abortions++;
-						V.abortionsTotal++;
+						actX(slave, "abortions");
 						if (slave.abortionTat > -1) {
 							slave.abortionTat++;
 							r.push(`The temporary tattoo of a child has been replaced with ${his} ${ordinalSuffix(slave.abortionTat)} crossed out infant.`);
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index c576d479d20414a8e2b8b727addc89f4f579e891..6b17e48aab38a9fed4b457a585b3f2ae27739a11 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1084,8 +1084,7 @@ globalThis.DefaultRules = (function() {
 				}
 				if (WL === 0) {
 					TerminatePregnancy(slave);
-					slave.counter.abortions++;
-					V.abortionsTotal++;
+					actX(slave, "abortions");
 				}
 			}
 			return res;
@@ -1142,8 +1141,7 @@ globalThis.DefaultRules = (function() {
 						cashX(forceNeg(V.modCost), "slaveMod", slave);
 					}
 					TerminatePregnancy(slave);
-					slave.counter.abortions++;
-					V.abortionsTotal++;
+					actX(slave, "abortions");
 				} else if (ar === "male") {
 					if (conditionalTermination(slave, fetus => fetus.genetics.gender === "XY")) {
 						r += `<br>${slave.slaveName}'s male fetuses have been terminated.`;
diff --git a/src/js/sexActsJS.js b/src/js/sexActsJS.js
index ce983ed4270c50c23dff64cb0b61b9282f881396..c3a42134b2da58bcd8436ae4c2f035e1fa0cc268 100644
--- a/src/js/sexActsJS.js
+++ b/src/js/sexActsJS.js
@@ -446,7 +446,7 @@ globalThis.actX = function(slave, act, count = 1) {
 			V.pitKillsTotal += count;
 			break;
 		case "miscarriages":
-			V.miscarriagesTotal++;
+			V.miscarriagesTotal += count;
 			break;
 		case "publicUse":
 			break;
diff --git a/src/npc/generate/lawCompliance.js b/src/npc/generate/lawCompliance.js
index b5f2cb594262fed1296b8d2e95b821777189feff..105b40a315607c27e324bf8384ea9922a17a4876 100644
--- a/src/npc/generate/lawCompliance.js
+++ b/src/npc/generate/lawCompliance.js
@@ -276,8 +276,7 @@ App.Desc.lawCompliance = function(slave, market = 0) {
 		const r = [];
 		if (slave.balls > 0 || slave.ovaries > 0) {
 			TerminatePregnancy(slave);
-			slave.counter.abortions++;
-			V.abortionsTotal++;
+			actX(slave, "abortions");
 			slave.balls = 0;
 			slave.ovaries = 0;
 			r.push(`As a member of the lowest class,`);
@@ -790,8 +789,7 @@ App.Desc.lawCompliance = function(slave, market = 0) {
 				}
 				r.push(`tubes were promptly tied to prevent ${him} from passing on ${his} inferior genes, <span class="mediumorchid">saddening</span> and <span class="gold">frightening</span> ${him}.`);
 				TerminatePregnancy(slave);
-				slave.counter.abortions++;
-				V.abortionsTotal++;
+				actX(slave, "abortions");
 				slave.devotion -= 30;
 				slave.trust -= 30;
 			} else if (slave.balls > 0) {
@@ -814,8 +812,7 @@ App.Desc.lawCompliance = function(slave, market = 0) {
 				}
 				r.push(`tubes were promptly tied to prevent ${him} from passing on ${his} inferior genes, <span class="mediumorchid">saddening</span> and <span class="gold">frightening</span> ${him}.`);
 				TerminatePregnancy(slave);
-				slave.counter.abortions++;
-				V.abortionsTotal++;
+				actX(slave, "abortions");
 				slave.devotion -= 10;
 				slave.trust -= 10;
 			} else {
diff --git a/src/pregmod/personalNotes.tw b/src/pregmod/personalNotes.tw
index fee3bd9ad7f40d239f1676816f288896515ffcd4..bc2ab16cd9d4734f2f9d8253bc4c7ab0e36d6e7b 100644
--- a/src/pregmod/personalNotes.tw
+++ b/src/pregmod/personalNotes.tw
@@ -344,8 +344,7 @@
 							<<set $PC.devotion -= 10, $PC.trust -= 10>>
 						<</if>>
 						<<set TerminatePregnancy($PC)>>
-						<<set $PC.counter.abortions++>>
-						<<set $abortionsTotal++>>
+						<<run actX($PC, "abortions")>>
 						<<if $PC.abortionTat > -1>>
 							<<set $PC.abortionTat++>>
 							The temporary tattoo of a child has been replaced with $his <<= ordinalSuffix($PC.abortionTat)>> crossed out infant.
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 04a2edfdd14f9a43dfd3870613a884b179839726..3090acf5a33451d74be5f6e2c91b41c062c69250 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -372,8 +372,7 @@
 			<<else>>
 				_S.HeadGirl.slaveName promptly aborts the child growing in $slaves[$i].slaveName since _he2 prefers _his2 <<= $girl>>s not harboring someone else's child or loaded down with _his2 own unwanted spawn.
 				<<run TerminatePregnancy($slaves[$i])>>
-				<<set $slaves[$i].counter.abortions++>>
-				<<set $abortionsTotal++>>
+				<<run actX($slaves[$i], "abortions")>>
 			<</if>>
 		<</if>>
 	<</if>>