private boolean handleLogin(TACMessage msg) {
    int status = NO_ERROR;
    while (msg.nextTag()) {
      if (msg.isTag("userID")) {
	userID = msg.getValueAsInt(-1);
	log.fine("Logged in as " + userID);
	TACMessage msg2 = new TACMessage("serverTime");
	sendMessage(msg2, this);

	// Do not request "nextGame" if already playing a game!!
	if (playingGame == -1) {
	  requestNextGame();
	}
	return true;
      } else if (msg.isTag("commandStatus")) {
	status = msg.getValueAsInt(NO_ERROR);
      }
    }
    fatalError("Failed to login as " + userName + ": status="
	       + commandStatusToString(status));
    return false;
  }