diff -r 8b5d06749026 -r c156273b57de rust/hedgewars-server/src/server/handlers.rs --- a/rust/hedgewars-server/src/server/handlers.rs Fri May 10 23:30:42 2019 +0200 +++ b/rust/hedgewars-server/src/server/handlers.rs Sat May 11 00:41:28 2019 +0300 @@ -347,12 +347,22 @@ response.remove_client(client_id); } IoResult::Replay(Some(replay)) => { - response.add(RoomJoined(vec![server.clients[client_id].nick.clone()]).send_self()); + let protocol = server.clients[client_id].protocol_number; + let start_msg = if protocol < 58 { + RoomJoined(vec![server.clients[client_id].nick.clone()]) + } else { + ReplayStart + }; + response.add(start_msg.send_self()); + common::get_room_config_impl(&replay.config, client_id, response); common::get_teams(replay.teams.iter(), client_id, response); response.add(RunGame.send_self()); response.add(ForwardEngineMessage(replay.message_log).send_self()); - response.add(Kicked.send_self()); + + if protocol < 58 { + response.add(Kicked.send_self()); + } } IoResult::Replay(None) => { response.add(Warning("Could't load the replay".to_string()).send_self())