diff --git a/redis.c b/redis.c
index 9587dcdc..f4e15bb4 100644
--- a/redis.c
+++ b/redis.c
@@ -720,7 +720,7 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) {
     }
 
     /* Close connections of timedout clients */
-    if (!(loops % 10))
+    if (server.maxidletime && !(loops % 10))
         closeTimedoutClients();
 
     /* Check if a background saving in progress terminated */
@@ -959,7 +959,7 @@ static void loadServerConfig(char *filename) {
         /* Execute config directives */
         if (!strcasecmp(argv[0],"timeout") && argc == 2) {
             server.maxidletime = atoi(argv[1]);
-            if (server.maxidletime < 1) {
+            if (server.maxidletime < 0) {
                 err = "Invalid timeout value"; goto loaderr;
             }
         } else if (!strcasecmp(argv[0],"port") && argc == 2) {
diff --git a/redis.conf b/redis.conf
index 38592b02..e8c6cd82 100644
--- a/redis.conf
+++ b/redis.conf
@@ -16,7 +16,7 @@ port 6379
 #
 # bind 127.0.0.1
 
-# Close the connection after a client is idle for N seconds
+# Close the connection after a client is idle for N seconds (0 to disable)
 timeout 300
 
 # Save the DB on disk: