Index: src/network/core/tcp_admin.cpp
===================================================================
--- src/network/core/tcp_admin.cpp	(revision 25578)
+++ src/network/core/tcp_admin.cpp	(working copy)
@@ -87,6 +87,7 @@
 		case ADMIN_PACKET_SERVER_CONSOLE:         return this->Receive_SERVER_CONSOLE(p);
 		case ADMIN_PACKET_SERVER_CMD_NAMES:       return this->Receive_SERVER_CMD_NAMES(p);
 		case ADMIN_PACKET_SERVER_CMD_LOGGING:     return this->Receive_SERVER_CMD_LOGGING(p);
+		case ADMIN_PACKET_SERVER_RCON_END:        return this->Receive_SERVER_RCON_END(p);
 
 		default:
 			if (this->HasClientQuit()) {
@@ -162,5 +163,6 @@
 NetworkRecvStatus NetworkAdminSocketHandler::Receive_SERVER_CONSOLE(Packet *p) { return this->ReceiveInvalidPacket(ADMIN_PACKET_SERVER_CONSOLE); }
 NetworkRecvStatus NetworkAdminSocketHandler::Receive_SERVER_CMD_NAMES(Packet *p) { return this->ReceiveInvalidPacket(ADMIN_PACKET_SERVER_CMD_NAMES); }
 NetworkRecvStatus NetworkAdminSocketHandler::Receive_SERVER_CMD_LOGGING(Packet *p) { return this->ReceiveInvalidPacket(ADMIN_PACKET_SERVER_CMD_LOGGING); }
+NetworkRecvStatus NetworkAdminSocketHandler::Receive_SERVER_RCON_END(Packet *p) { return this->ReceiveInvalidPacket(ADMIN_PACKET_SERVER_RCON_END); }
 
 #endif /* ENABLE_NETWORK */
Index: src/network/core/tcp_admin.h
===================================================================
--- src/network/core/tcp_admin.h	(revision 25578)
+++ src/network/core/tcp_admin.h	(working copy)
@@ -60,6 +60,7 @@
 	ADMIN_PACKET_SERVER_CMD_NAMES,       ///< The server sends out the names of the DoCommands to the admins.
 	ADMIN_PACKET_SERVER_CMD_LOGGING,     ///< The server gives the admin copies of incoming command packets.
 	ADMIN_PACKET_SERVER_GAMESCRIPT,      ///< The server gives the admin information from the GameScript in JSON.
+	ADMIN_PACKET_SERVER_RCON_END,        ///< The server indicates that the remote console command has completed.
 
 	INVALID_ADMIN_PACKET = 0xFF,         ///< An invalid marker for admin packets.
 };
@@ -454,6 +455,14 @@
 	 */
 	virtual NetworkRecvStatus Receive_SERVER_CMD_LOGGING(Packet *p);
 
+	/**
+	 * Notify the admin connection that the rcon command has finished.
+	 * string The command as requested by the admin connection.
+	 * @param p The packet that was just received.
+	 * @return The state the network should have.
+	 */
+	virtual NetworkRecvStatus Receive_SERVER_RCON_END(Packet *p);
+
 	NetworkRecvStatus HandlePacket(Packet *p);
 public:
 	NetworkRecvStatus CloseConnection(bool error = true);
Index: src/network/network_admin.cpp
===================================================================
--- src/network/network_admin.cpp	(revision 25578)
+++ src/network/network_admin.cpp	(working copy)
@@ -481,6 +481,20 @@
 }
 
 /**
+ * Send a notification indicating the rcon command has completed.
+ * @param command The original command sent.
+ */
+NetworkRecvStatus ServerNetworkAdminSocketHandler::SendRconEnd(const char *command)
+{
+	Packet *p = new Packet(ADMIN_PACKET_SERVER_RCON_END);
+	
+	p->Send_string(command);
+	this->SendPacket(p);
+
+	return NETWORK_RECV_STATUS_OKAY;
+}
+
+/**
  * Send the reply of an rcon command.
  * @param colour The colour of the text.
  * @param result The result of the command.
@@ -509,7 +523,7 @@
 	_redirect_console_to_admin = this->index;
 	IConsoleCmdExec(command);
 	_redirect_console_to_admin = INVALID_ADMIN_ID;
-	return NETWORK_RECV_STATUS_OKAY;
+	return this->SendRconEnd(command);
 }
 
 NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_GAMESCRIPT(Packet *p)
Index: src/network/network_admin.h
===================================================================
--- src/network/network_admin.h	(revision 25578)
+++ src/network/network_admin.h	(working copy)
@@ -69,6 +69,7 @@
 	NetworkRecvStatus SendGameScript(const char *json);
 	NetworkRecvStatus SendCmdNames();
 	NetworkRecvStatus SendCmdLogging(ClientID client_id, const CommandPacket *cp);
+	NetworkRecvStatus SendRconEnd(const char *command);
 
 	static void Send();
 	static void AcceptConnection(SOCKET s, const NetworkAddress &address);