Index: binary-improvements/7dtd-server-fixes/src/TelnetCommands/SayToPlayer.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/TelnetCommands/SayToPlayer.cs	(revision 107)
+++ binary-improvements/7dtd-server-fixes/src/TelnetCommands/SayToPlayer.cs	(revision 108)
@@ -18,13 +18,26 @@
 	}
 
-	private void SendMessage (ClientInfo _receiver, string _sender, string _message)
+	private void SendMessage (ClientInfo _receiver, ClientInfo _sender, string _message)
 	{
+		string senderName;
+		if (_sender != null) {
+			PrivateMassageConnections.SetLastPMSender(_sender, _receiver);
+			senderName = CommonMappingFunctions.GetPlayerName (_sender);
+		} else {
+			senderName = "Server";
+		}
 		CommonMappingFunctions.GetConnectionManager ().networkView.RPC ("RPC_ChatMessage", _receiver.networkPlayer,
-				new object[] { _message, -1, _sender + " (PM)", true	});
+				new object[] {
+			_message,
+			-1,
+			senderName + " (PM)",
+			true
+		}
+		);
 		string receiverName = CommonMappingFunctions.GetPlayerName (_receiver);
-		m_Console.SendResult ("Message to player " + (receiverName != null ? "\"" + receiverName + "\"" : "unknownName") + " sent with sender \"" + _sender + "\"");
+		m_Console.SendResult ("Message to player " + (receiverName != null ? "\"" + receiverName + "\"" : "unknownName") + " sent with sender \"" + senderName + "\"");
 	}
 
-	private void RunInternal (string _sender, string[] _params)
+	private void RunInternal (ClientInfo _sender, string[] _params)
 	{
 		if (_params.Length < 2) {
@@ -38,7 +51,7 @@
 		}
 
-		ClientInfo ci = CommonMappingFunctions.GetClientInfoFromNameOrID (_params [0]);
-		if (ci != null) {
-			SendMessage (ci, _sender, message);
+		ClientInfo receiver = CommonMappingFunctions.GetClientInfoFromNameOrID (_params [0]);
+		if (receiver != null) {
+			SendMessage (receiver, _sender, message);
 		} else {
 			m_Console.SendResult ("Playername or entity ID not found.");
@@ -49,10 +62,7 @@
 	{
 		try {
-			this.m_Console.md000a (string.Format ("{0} executing remote command '{1}' {2}", _sender, this.Names () [0], string.Join (" ", _params)));
+			this.m_Console.SendResult (string.Format ("{0} executing remote command '{1}' {2}", _sender, this.Names () [0], string.Join (" ", _params)));
 			ClientInfo ci = CommonMappingFunctions.GetClientInfoFromSteamID (_sender);
-			if (ci != null) {
-				_sender = CommonMappingFunctions.GetPlayerName (ci);
-			}
-			RunInternal (_sender, _params);
+			RunInternal (ci, _params);
 		} catch (Exception e) {
 			Log.Out ("Error in SayToPlayer.ExecuteRemote: " + e);
@@ -63,5 +73,5 @@
 	{
 		try {
-			RunInternal ("Server", _params);
+			RunInternal (null, _params);
 		} catch (Exception e) {
 			Log.Out ("Error in SayToPlayer.Run: " + e);
