diff -r 1963f2a972d9 src/console_cmds.cpp --- a/src/console_cmds.cpp Thu Jun 15 02:22:53 2017 +0300 +++ b/src/console_cmds.cpp Tue Aug 15 22:38:30 2017 +0300 @@ -890,7 +890,6 @@ } if (argc < 2) return false; - if (_networking) NetworkDisconnect(); // we are in network-mode, first close it! const char *port = NULL; const char *company = NULL; @@ -901,18 +900,18 @@ ParseConnectionString(&company, &port, ip); - IConsolePrintF(CC_DEFAULT, "Connecting to %s...", ip); if (company != NULL) { join_as = (CompanyID)atoi(company); - IConsolePrintF(CC_DEFAULT, " company-no: %d", join_as); /* From a user pov 0 is a new company, internally it's different and all * companies are offset by one to ease up on users (eg companies 1-8 not 0-7) */ if (join_as != COMPANY_SPECTATOR) { - if (join_as > MAX_COMPANIES) return false; join_as--; + if (join_as < COMPANY_FIRST || join_as >= MAX_COMPANIES) return false; } } + IConsolePrintF(CC_DEFAULT, "Connecting to %s...", ip); + if (join_as != COMPANY_NEW_COMPANY) IConsolePrintF(CC_DEFAULT, " company-no: %d", join_as == COMPANY_SPECTATOR ? join_as : join_as + 1); if (port != NULL) { rport = atoi(port); IConsolePrintF(CC_DEFAULT, " port: %s", port); diff -r 1963f2a972d9 src/network/network_gui.cpp --- a/src/network/network_gui.cpp Thu Jun 15 02:22:53 2017 +0300 +++ b/src/network/network_gui.cpp Tue Aug 15 22:38:30 2017 +0300 @@ -2101,6 +2101,7 @@ { if (StrEmpty(str)) { NetworkDisconnect(); + _switch_mode = SM_MENU; ShowNetworkGameWindow(); return; }