diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index fc7288d1b90890c532ea7f94a508ef69171f005b..b30d6a50d7437588c04866f84fa997f7df4f94c4 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1961,33 +1961,28 @@ globalThis.DefaultRules = (function() {
 	 * @param {FC.RA.RuleSetters} rule
 	 */
 	function ProcessRelease(slave, rule) {
-		if ((rule.releaseRules !== undefined) && (rule.releaseRules !== null)) {
-			const releaseProperties = [
-				'masturbation',
-				'partner',
-				'facilityLeader',
-				'family',
-				'slaves',
-				'master',
-			];
+		const releaseProperties = [
+			'masturbation',
+			'partner',
+			'facilityLeader',
+			'family',
+			'slaves',
+			'master',
+		];
+		if ((rule.releaseRules !== undefined) && (rule.releaseRules !== null) && processReleaseProp(releaseProperties)) {
+			r += `<br>${slave.slaveName}'s release rules have been set to: ${App.Utils.releaseSummaryLong(slave)}.`;
+		}
+		function processReleaseProp(releaseProperties) {
 			let changed = false;
-
-			function processReleaseProp(property) {
+			for (const property of releaseProperties) {
+				if (rule.releaseRules[property] !== undefined && rule.releaseRules[property] !== null) {
 					if (slave.rules.release[property] !== rule.releaseRules[property]) {
 						slave.rules.release[property] = rule.releaseRules[property];
-						return true;
+						changed = true;
 					}
-					return false;
-			}
-
-			for (const property of releaseProperties) {
-				if (processReleaseProp(property)) {
-					changed = true;
 				}
 			}
-			if (changed) {
-				r += `<br>${slave.slaveName}'s release rules have been set to: ${App.Utils.releaseSummaryLong(slave)}.`;
-			}
+			return changed;
 		}
 	}
 
diff --git a/src/js/releaseRules.js b/src/js/releaseRules.js
index fd443122021f54e376d41afbe1fb3c1caa402b32..e16e71cac7e98ea7233a9e7f3156962923b418a5 100644
--- a/src/js/releaseRules.js
+++ b/src/js/releaseRules.js
@@ -117,22 +117,34 @@ App.Utils.releaseSummaryShort = function releaseSummaryShort(slave) {
 App.Utils.releaseSummaryLong = function releaseSummaryLong(slave) {
 	const rel = slave.rules.release;
 	const includeFamily = (rel.family === 1) && (V.seeIncest === 1);
-	if (rel.masturbation === 0 && rel.partner === 0 && !includeFamily && rel.slaves === 0 && rel.master === 0) {
+	let _counter = rel.masturbation + rel.partner + rel.facilityLeader + rel.slaves + rel.master;
+	if (includeFamily) {
+		_counter += 1;
+	}
+
+	if (rel.masturbation === 0 && rel.partner === 0 && rel.facilityLeader === 0 && !includeFamily && rel.slaves === 0 && rel.master === 0) {
 		return "chastity";
-	} else if (rel.masturbation === 1 && rel.partner === 0 && !includeFamily && rel.slaves === 0 && rel.master === 0) {
+	} else if (rel.masturbation === 1 && rel.partner === 0 && rel.facilityLeader === 0 && !includeFamily && rel.slaves === 0 && rel.master === 0) {
 		return "masturbation only";
-	} else if (rel.masturbation === 0 && rel.partner === 1 && !includeFamily && rel.slaves === 0 && rel.master === 0) {
+	} else if (rel.masturbation === 0 && rel.partner === 1 && rel.facilityLeader === 0 && !includeFamily && rel.slaves === 0 && rel.master === 0) {
 		return "partner only";
-	} else if (rel.masturbation === 0 && rel.partner === 0 && includeFamily && rel.slaves === 0 && rel.master === 0) {
+	} else if (rel.masturbation === 0 && rel.partner === 0 && rel.facilityLeader === 1 && !includeFamily && rel.slaves === 0 && rel.master === 0) {
+		return "facility leaders only";
+	} else if (rel.masturbation === 0 && rel.partner === 0 && rel.facilityLeader === 0 &&  includeFamily && rel.slaves === 0 && rel.master === 0) {
 		return "family only";
-	} else if (rel.masturbation === 0 && rel.partner === 0 && !includeFamily && rel.slaves === 0 && rel.master === 1) {
+	} else if (rel.masturbation === 0 && rel.partner === 0 && rel.facilityLeader === 0 && !includeFamily && rel.slaves === 1 && rel.master === 0) {
+		return "slaves only";
+	} else if (rel.masturbation === 0 && rel.partner === 0 && rel.facilityLeader === 0 && !includeFamily && rel.slaves === 0 && rel.master === 1) {
 		return "you only";
-	} else if (rel.slaves === 1) {
+	} else if (_counter >= 3) {
 		let ret = "permissive";
 		let exceptions = [];
 		if (rel.partner === 0) {
 			exceptions.push("partner");
 		}
+		if (rel.facilityLeader === 0) {
+			exceptions.push("facility leaders");
+		}
 		if (!includeFamily) {
 			exceptions.push("family");
 		}
@@ -146,22 +158,30 @@ App.Utils.releaseSummaryLong = function releaseSummaryLong(slave) {
 			ret += ", no masturbation";
 		}
 		return ret;
-	} else {
+	} else if (_counter > 0 && _counter < 3){
+		let ret = "restrictive";
 		let permissions = [];
-		if (rel.masturbation === 1) {
-			permissions.push("masturbation");
-		}
 		if (rel.partner === 1) {
 			permissions.push("partner");
 		}
+		if (rel.facilityLeader === 1) {
+			permissions.push("facility leaders");
+		}
 		if (includeFamily) {
 			permissions.push("family");
 		}
 		if (rel.master === 1) {
 			permissions.push("you");
 		}
-		if (permissions.length < 1) { return "unknown"; } // probably means BC didn't get run, but let's not die because of it
-		return permissions.reduce(function(res, ch, i, arr) { return res + (i === arr.length - 1 ? ' and ' : ', ') + ch; });
+		if (permissions.length > 0) {
+			ret += " but permits " + permissions.reduce(function(res, ch, i, arr) { return res + (i === arr.length - 1 ? ' and ' : ', ') + ch; });
+		}
+		if (rel.masturbation === 1) {
+			ret += ", and allowed to masturbate";
+		}
+		return ret;
+	} else {
+		return "no release rules";
 	}
 };