diff -du irc/irc.scm irc-new/irc.scm
--- irc/irc.scm	2014-08-16 15:50:57.474747001 -0400
+++ irc-new/irc.scm	2014-08-16 15:26:41.898747001 -0400
@@ -181,7 +181,8 @@
 	 (parse-reply (read-input con) con) ) ) )
 
 (define (read-input con)
-  (let ((input (read-line (irc:connection-in con))))
-    (and-let* ((log (irc:connection-log-traffic con)))
-      (fprintf log "~a < ~a~%~!" (seconds->string (current-seconds)) input) )
-    input))
+  (parameterize ((tcp-read-timeout (irc:connection-reconnect-timeout con)))
+    (let ((input (read-line (irc:connection-in con))))
+      (and-let* ((log (irc:connection-log-traffic con)))
+        (fprintf log "~a < ~a~%~!" (seconds->string (current-seconds)) input) )
+      input)))
