diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index 079efb65508d5f3acc8e7da320eef72fe50195c6..e8894f0df883121e4c505169de8a8b7970d8403c 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -1454,6 +1454,11 @@ App.Data.resetOnNGPlus = {
 		slave: 0 /* { type: string, company: string */
 	},
 	tempEventToggle: 0,
+	/**
+	 * Assignments texts for slaves who choose their own assignment, set at during the first pass in  App.SlaveAssignment.choosesOwnJob()
+	 * @type {Object.<number, string>}
+	 */
+	choosesOwnAssignmentText: {},
 };
 
 App.Data.ignoreGameStateVariables = [
diff --git a/src/endWeek/saChoosesOwnJob.js b/src/endWeek/saChoosesOwnJob.js
index 88d92960c58d6ea1f81c0855351a694c8f7e5ba0..6e2447dfa7f5b0ade1d8669b321ebd70d4ec16f8 100644
--- a/src/endWeek/saChoosesOwnJob.js
+++ b/src/endWeek/saChoosesOwnJob.js
@@ -48,15 +48,15 @@ App.SlaveAssignment.choosesOwnJob = (function() {
 		} else if (slave.choosesOwnAssignment === 2) {
 			// second pass happens visibly during weekly report for the location where this slave decided to go (or stay)
 			// display text but don't change assignment (already done)
-			r.push(slave.choosesOwnAssignmentText);
-			slave.choosesOwnAssignmentText = "";
+			r.push(V.choosesOwnAssignmentText[slave.ID]);
+			delete V.choosesOwnAssignmentText[slave.ID];
 			slave.choosesOwnAssignment = 1;
 			// continue cycle for next week
 		} else {
 			// first pass happens silently before all reports: give stats bonus, construct decision string for display during second pass, actually change assignment
 			slave.devotion++;
 			slave.trust++;
-			slave.choosesOwnAssignmentText = jobSelection(slave);
+			V.choosesOwnAssignmentText[slave.ID] = jobSelection(slave);
 		}
 
 		return r.join(" ");