diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index e7a200b5cbb5376ec3147de2b4cd7985e694d5a3..80725f48651501572bf971622b84e584a7b6acc5 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -1461,6 +1461,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(" ");