Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/Telnet.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/Telnet.cs	(revision 140)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/Telnet.cs	(revision 142)
@@ -113,5 +113,5 @@
 			string res = "";
 			for (int i = 0; i < line.Length; i++) {
-				if (line [i] >= ' ' && line [i] != '\'' && line [i] <= '~') {
+				if (line [i] >= ' ' && line [i] != '\'') {
 					res += line [i];
 				}
Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs	(revision 140)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs	(revision 142)
@@ -2,4 +2,5 @@
 using System.Net;
 using System.Net.Sockets;
+using System.Text;
 
 namespace AllocsFixes.NetConnections.Servers.Telnet
@@ -11,5 +12,6 @@
 		private TcpClient client;
 		private NetworkStream stream;
-		private string lineBuffer = string.Empty;
+		private int lineBufferLength = 0;
+		private byte[] lineBuffer = new byte[200];
 		private EndPoint endpoint;
 
@@ -38,7 +40,6 @@
 			try {
 				if (!IsClosed () && stream.CanWrite) {
-					for (int i = 0; i < s.Length; i++) {
-						WriteByte ((byte)s [i]);
-					}
+					byte[] utfData = Encoding.UTF8.GetBytes (s);
+					stream.Write(utfData, 0, utfData.Length);
 					WriteByte (13);
 					WriteByte (10);
@@ -79,8 +80,9 @@
 				int b = stream.ReadByte ();
 				if (b == '\r' || b == '\n') {
-					if (lineBuffer.Length > 0)
+					if (lineBufferLength > 0)
 						return true;
-				} else {
-					lineBuffer += (char)b;
+				} else if (b >= 0) {
+					lineBuffer[lineBufferLength] = (byte)b;
+					lineBufferLength++;
 				}
 			}
@@ -90,6 +92,6 @@
 		public string GetLine ()
 		{
-			string res = lineBuffer;
-			lineBuffer = string.Empty;
+			string res = Encoding.UTF8.GetString(lineBuffer, 0, lineBufferLength);;
+			lineBufferLength = 0;
 			return res;
 		}
Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 140)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 142)
@@ -113,5 +113,5 @@
 		{
 			try {
-				Log.Out ("NOT IMPLEMENTED: Web.WriteToClient");
+				//Log.Out ("NOT IMPLEMENTED: Web.WriteToClient");
 			} catch (Exception e) {
 				Log.Out ("Error in Web.WriteToClient: " + e);
@@ -122,5 +122,5 @@
 		{
 			try {
-				Log.Out ("NOT IMPLEMENTED: Web.WriteToClient_Single");
+				//Log.Out ("NOT IMPLEMENTED: Web.WriteToClient_Single");
 			} catch (Exception e) {
 				Log.Out ("Error in Web.WriteToClient_Single: " + e);
