try {
                 Log.info(SMTP.Outgoing.class, "connecting to " + mx + "...");
                 Connection conn = new Connection(new Socket(mx, 25), InetAddress.getLocalHost().getHostName());
+                conn.setTimeout(60 * 1000);
                 Log.info(SMTP.Outgoing.class, "connected");
                 check(conn.readln());  // banner
                 conn.println("HELO " + conn.vhost);            check(conn.readln());
                         catch (IOException e) { Log.error(SMTP.Outgoing.class, e); }
                     synchronized(Outgoing.class) {
                         Log.info(SMTP.Outgoing.class, "outgoing thread going to sleep");
-                        Outgoing.class.wait(10 * 60 * 1000);
+                        Outgoing.class.wait(5 * 60 * 1000);
                         deadHosts.clear();
                         Log.info(SMTP.Outgoing.class,"outgoing thread woke up; "+spool.count(Query.all())+" messages in queue");
                     }