Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/Telnet.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/Telnet.cs	(revision 185)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/Telnet.cs	(revision 187)
@@ -9,7 +9,31 @@
 	public class Telnet : IServer
 	{
+		private const int MAX_LOGIN_ATTEMPTS = 10;
+		private const int BLOCK_TIME_SECONDS = 10;
+
+		private class LoginAttempts
+		{
+			private int count = 0;
+			private DateTime lastAttempt = new DateTime (0);
+
+			public bool LogAttempt ()
+			{
+				lastAttempt = DateTime.Now;
+				count++;
+				return count < MAX_LOGIN_ATTEMPTS;
+			}
+
+			public bool IsBanned ()
+			{
+				if ((DateTime.Now - lastAttempt).TotalSeconds > BLOCK_TIME_SECONDS)
+					count = 0;
+				return count >= MAX_LOGIN_ATTEMPTS;
+			}
+		}
+
 		private TcpListener listener = null;
 		private bool authEnabled = false;
 		private List<TelnetConnection> connections = new List<TelnetConnection> ();
+		private Dictionary<int, LoginAttempts> loginAttemptsPerIP = new Dictionary<int, LoginAttempts> ();
 
 		public Telnet ()
@@ -39,6 +63,10 @@
 		}
 
-		public void FailedLogins ()
+		public bool RegisterFailedLogin (int addressHash)
 		{
+			lock (loginAttemptsPerIP) {
+				LoginAttempts la = loginAttemptsPerIP [addressHash];
+				return la.LogAttempt ();
+			}
 		}
 
@@ -46,6 +74,31 @@
 		{
 			if (listener.Server.IsBound) {
-				TelnetConnection c = new TelnetConnection (this, listener.EndAcceptTcpClient (asyncResult), authEnabled);
-				connections.Add (c);
+				TcpClient client = listener.EndAcceptTcpClient (asyncResult);
+
+				EndPoint endpoint = client.Client.RemoteEndPoint;
+				int addressHash = -1;
+				if (endpoint is IPEndPoint) {
+					addressHash = ((IPEndPoint)endpoint).Address.GetHashCode ();
+					//Log.Out ("Hash: " + endpointAddressHash);
+				} else {
+					Log.Out ("EndPoint is not an IPEndPoint but: " + endpoint.GetType ().ToString ());
+				}
+
+				lock (loginAttemptsPerIP) {
+					LoginAttempts la = null;
+					if (loginAttemptsPerIP.ContainsKey(addressHash))
+						la = loginAttemptsPerIP [addressHash];
+					if (la == null) {
+						la = new LoginAttempts ();
+						loginAttemptsPerIP [addressHash] = la;
+					}
+					if (!la.IsBanned ()) {
+						TelnetConnection con = new TelnetConnection (this, client, authEnabled);
+						connections.Add (con);
+					} else {
+						client.Close ();
+						Log.Out ("Telnet connection not accepted for too many login attempts: " + endpoint);
+					}
+				}
 				listener.BeginAcceptTcpClient (new AsyncCallback (AcceptClient), null);
 			}
Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs	(revision 185)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs	(revision 187)
@@ -15,5 +15,4 @@
 		private readonly Thread receiveThread = null;
 		private readonly Thread sendThread = null;
-		private int authTries = 0;
 		private bool authenticated = false;
 		private readonly bool authEnabled;
@@ -91,12 +90,9 @@
 									LoginMessage ();
 								} else {
-									authTries++;
-									// TODO: check if IP has more login attempts by now
-									if (authTries < 3) {
+									if (owner.RegisterFailedLogin(endpointAddressHash)) {
 										WriteLine ("Password incorrect, please enter password:");
 									} else {
 										WriteLine ("Too many failed login attempts!");
 										Thread.Sleep(100);
-										//TODO: owner.FailedLogins();
 										Close ();
 										Log.Out ("Telnet connection closed for too many login attempts: " + endpoint);
Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/MimeType.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/MimeType.cs	(revision 185)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/MimeType.cs	(revision 187)
@@ -209,4 +209,5 @@
         {".jpg", "image/jpeg"},
         {".js", "application/x-javascript"},
+		{".json", "application/json"},
         {".jsx", "text/jscript"},
         {".jsxbin", "text/plain"},
