// c.to == this.st.user.name (connected)
           if (c.fen) {
             const parsedFen = V.ParseFen(c.fen);
+            c.mycolor = V.GetOppCol(parsedFen.turn);
             this.tchallDiag = getDiagram({
               position: parsedFen.position,
-              orientation: V.GetOppCol(parsedFen.turn)
+              orientation: c.mycolor
             });
             this.curChallToAccept = c;
             document.getElementById("modalAccept").checked = true;
       let gameInfo = {
         id: getRandString(),
         fen: c.fen || V.GenRandInitFen(),
-        players: shuffle([c.from, c.seat]), //white then black
+        // White player index 0, black player index 1:
+        players: c.mycolor
+          ? (c.mycolor == "w" ? [c.seat, c.from] : [c.from, c.seat])
+          : shuffle([c.from, c.seat]),
         vid: c.vid,
         cadence: c.cadence
       };
 
           if (edit) {
             let editedP = this.problems.find(p => p.id == this.curproblem.id);
             this.copyProblem(this.curproblem, editedP);
-          } //new problem
+          }
           else {
+            // New problem
             let newProblem = Object.assign({}, this.curproblem);
             newProblem.id = ret.id;
             newProblem.uid = this.st.user.id;
             newProblem.uname = this.st.user.name;
             this.problems = this.problems.concat(newProblem);
+            this.resetCurProb();
           }
-          this.resetCurProb();
           this.infoMsg = "";
         }
       );