diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw
index a2a355f5a20770f9dfa4f99db8e86dd2b36283df..7f8990ee42014e72b06bfaa4951c8832b6885301 100644
--- a/src/js/rulesAssistantOptions.tw
+++ b/src/js/rulesAssistantOptions.tw
@@ -468,6 +468,7 @@ window.rulesAssistantOptions = (function() {
 	class ApplicationLog extends Element {
 		render() {
 			const elem = document.createElement("div");
+			clearSummaryCache();
 			elem.innerHTML = V.slaves.map(slave => DefaultRules(slave)).join("");
 			return elem;
 		}
diff --git a/src/js/slaveSummaryWidgets.tw b/src/js/slaveSummaryWidgets.tw
new file mode 100644
index 0000000000000000000000000000000000000000..d203af4331c8e9da9dbc2783854d5016b376ca08
--- /dev/null
+++ b/src/js/slaveSummaryWidgets.tw
@@ -0,0 +1,10 @@
+:: Slave Summary Widgets JS [script]
+
+window.clearSummaryCache = function clearSummaryCache(slave) {
+	if (!slave)
+		setup.summaryCache = {};
+	else if (slave instanceof Object && slave.ID !== Infinity && slave.ID !== -Infinity)
+		setup.summaryCache[slave.ID] = undefined;
+	else
+		setup.summaryCache[slave] = undefined;
+};
diff --git a/src/pregmod/widgets/slaveSummaryWidgets.tw b/src/pregmod/widgets/slaveSummaryWidgets.tw
index 66f01f09b50a41f5a6e914c899083f9cdab678d9..3a0877f83de0b8730d748a80a8c2514c8cc1faed 100644
--- a/src/pregmod/widgets/slaveSummaryWidgets.tw
+++ b/src/pregmod/widgets/slaveSummaryWidgets.tw
@@ -25,13 +25,7 @@
 <</widget>>
 
 <<widget "ClearSummaryCache">>
-<<if !$args[0]>>
-	<<set setup.summaryCache = {}>>
-<<elseif _.isObject($args[0]) && _.isFinite($args[0].ID)>>
-	<<set setup.summaryCache[$args[0].ID] = undefined>>
-<<else>>
-	<<set setup.summaryCache[$args[0]] = undefined>>
-<</if>>
+	<<run clearSummaryCache($args[0])>>
 <</widget>>
 
 <<widget "SlaveSummaryUncached">>