diff --git a/src/core/events.js b/src/core/events.js
index <HASH>..<HASH> 100644
--- a/src/core/events.js
+++ b/src/core/events.js
@@ -41,7 +41,10 @@ export class Events {
   update(state) {
     for (const item of this.dispatch) {
       const action = gameEvent(item.key, item.args, this.playerID);
-      state = this.flow.processGameEvent(state, action.payload);
+      state = {
+        ...state,
+        ...this.flow.processGameEvent(state, action.payload),
+      };
     }
     return state;
   }
diff --git a/src/core/flow.js b/src/core/flow.js
index <HASH>..<HASH> 100644
--- a/src/core/flow.js
+++ b/src/core/flow.js
@@ -569,7 +569,7 @@ export function FlowWithPhases({
   if (endGame) enabledEvents['endGame'] = endGameEvent;
 
   enabledEvents['changeActionPlayers'] = (state, actionPlayers) => {
-    return { G: state.G, ctx: { ...state.ctx, actionPlayers } };
+    return { ...state, ctx: { ...state.ctx, actionPlayers } };
   };
 
   return Flow({
make events.update() leave unrelated state fields untouched