diff --git a/go/Makefile b/go/Makefile
index b40eb73..b498a4e 100644
--- a/go/Makefile
+++ b/go/Makefile
@@ -72,7 +72,7 @@
 	rm -rf bin
 	rm -rf credentials
 	rm -rf pkg
-	rm -rf src/golang.org/x/mobile/cmd/gomobile
+	rm -rf src/golang.org/x/mobile
 	rm -rf tmp/syncbase
 
 all: bin/hearts
diff --git a/lib/components/croupier.dart b/lib/components/croupier.dart
index 89d146d..61b73b4 100644
--- a/lib/components/croupier.dart
+++ b/lib/components/croupier.dart
@@ -52,10 +52,10 @@
                       logic_croupier.CroupierState.JoinGame)),
               new FlatButton(
                   child: new Text('Resume Game', style: style.Text.titleStyle),
-                  onPressed: config.croupier.mostRecentGameID != null
+                  onPressed: config.croupier.settings.hasLastGame
                       ? makeSetStateCallback(
                           logic_croupier.CroupierState.ResumeGame,
-                          config.croupier.mostRecentGameID)
+                          config.croupier.settings.lastGameID)
                       : null),
               new CroupierProfileComponent(
                   settings: config.croupier.settings,
diff --git a/lib/logic/croupier.dart b/lib/logic/croupier.dart
index c4fcf5b..146d5d3 100644
--- a/lib/logic/croupier.dart
+++ b/lib/logic/croupier.dart
@@ -33,7 +33,6 @@
   Map<String, GameStartData> games_found; // empty, but loads asynchronously
   Map<int, int> players_found; // empty, but loads asynchronously
   Game game; // null until chosen
-  int mostRecentGameID; // null until a game was started.
   NoArgCb informUICb;
 
   // Futures to use in order to cancel scans and advertisements.
@@ -93,7 +92,8 @@
 
   void _setCurrentGame(Game g) {
     game = g;
-    mostRecentGameID = game.gameID;
+    settings.lastGameID = g.gameID;
+    settings_manager.save(settings.userID, settings.toJSONString()); // async
   }
 
   Game _createNewGame(GameType gt) {
diff --git a/lib/logic/croupier_settings.dart b/lib/logic/croupier_settings.dart
index 69823a4..0522fed 100644
--- a/lib/logic/croupier_settings.dart
+++ b/lib/logic/croupier_settings.dart
@@ -8,7 +8,12 @@
 /// CroupierSettings is a simple struct that contains player-specific settings.
 /// Players can modify a subset of their settings via the UI.
 class CroupierSettings {
-  int userID; // This is a value the user cannot set on their own.
+  // Values the user does not set.
+  int userID;
+  int lastGameID; // Note: Some versions of Croupier do not support lastGameID.
+  bool get hasLastGame => lastGameID != null;
+
+  // Values the user can customize
   String avatar;
   String name;
   int color;
@@ -20,7 +25,6 @@
   }
 
   CroupierSettings.placeholder() {
-    userID = 0;
     avatar = "Heart.png";
     name = "Loading...";
     color = 0xcfcccccc;
@@ -29,6 +33,7 @@
   CroupierSettings.fromJSONString(String json) {
     var data = JSON.decode(json);
     userID = data["userID"];
+    lastGameID = data["lastGameID"];
     avatar = data["avatar"];
     name = data["name"];
     color = data["color"];
@@ -77,8 +82,13 @@
   }
 
   String toJSONString() {
-    return JSON.encode(
-        {"userID": userID, "avatar": avatar, "name": name, "color": color});
+    return JSON.encode({
+      "userID": userID,
+      "lastGameID": lastGameID,
+      "avatar": avatar,
+      "name": name,
+      "color": color
+    });
   }
 
   void _randomInitialization() {
diff --git a/pubspec.lock b/pubspec.lock
index eda60cd..25a0d88 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -238,7 +238,7 @@
   syncbase:
     description: syncbase
     source: hosted
-    version: "0.0.23"
+    version: "0.0.26"
   test:
     description: test
     source: hosted
@@ -254,7 +254,7 @@
   v23discovery:
     description: v23discovery
     source: hosted
-    version: "0.0.7"
+    version: "0.0.8"
   vector_math:
     description: vector_math
     source: hosted
