diff --git a/src/server/ChangeLog b/src/server/ChangeLog
index a519463ba05bb7a025221efa7578a4e92962e1f3..2738d468fc59e87d79cd7d092cccffc7c472b738 100644
--- a/src/server/ChangeLog
+++ b/src/server/ChangeLog
@@ -1,6 +1,16 @@
+Wed Aug 12 01:38:22 1992  Per Cederqvist  (ceder@robin)
+
+	* rfc931.c (get_real_username): Introduce 20-second timeout. Log
+	any ident queries that takes more than 3 seconds. New argument:
+	hostname (only used for the log).
+	* connections.c (login_request): Send the new argument.
+
+	* log.c (logv): Print the log message on a single line, with the
+	time in the first 20 columns. (Facilitate log browsing).
+
 Wed Aug 12 00:33:55 1992  Inge Wallin  (inge@lysator)
 
-	* simple-cache.c(save_one_text): Write texts to file as long as
+	* simple-cache.c (save_one_text): Write texts to file as long as
 	  they are removed. 
 
 Thu Jun 11 16:28:39 1992  Per Cederqvist  (ceder@lysator)
diff --git a/src/server/connections.c b/src/server/connections.c
index e7929fc2f86b8668d953a0f9b8c52121c063ddbf..984fba6e3411df0ea0c925f2502db04f7e529939 100644
--- a/src/server/connections.c
+++ b/src/server/connections.c
@@ -1,5 +1,5 @@
 /*
- * $Id: connections.c,v 0.19 1992/06/11 14:32:54 ceder Exp $
+ * $Id: connections.c,v 0.20 1992/08/12 04:12:53 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -30,7 +30,7 @@
  * Created by Willf|r 31/3-90. Mostly written by ceder.
  */
 
-static char *rcsid = "$Id: connections.c,v 0.19 1992/06/11 14:32:54 ceder Exp $";
+static char *rcsid = "$Id: connections.c,v 0.20 1992/08/12 04:12:53 ceder Exp $";
 
 
 #include <errno.h>
@@ -781,7 +781,7 @@ login_request(IscEvent  *event)
 
 	/* Get the real user name, as returned by the Ident protocol
 	   (rfc 931). */
-	realuser = get_real_username(event->session);
+	realuser = get_real_username(event->session, hostname);
 	if (realuser != NULL)
 	    s_crea_str(&cp->ident_user, realuser);
 
diff --git a/src/server/rfc931.c b/src/server/rfc931.c
index 63e103c0795947c33ab82e2c54eaec58e570e6b4..d57f32415e3378101301dc72f74975869c55ece0 100644
--- a/src/server/rfc931.c
+++ b/src/server/rfc931.c
@@ -1,5 +1,5 @@
 /*
- * $Id: rfc931.c,v 1.2 1992/04/01 20:32:03 ceder Exp $
+ * $Id: rfc931.c,v 1.3 1992/08/12 04:12:57 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -36,22 +36,40 @@
 #include <m-config.h>
 #include "rfc931.h"
 #include <authuser.h>
+#include <errno.h>
+#include "log.h"
 
 #ifdef RFC_931
 
 char *
-get_real_username(IscSession *scb)
+get_real_username(IscSession *scb,
+		  char *hostname)
 {
     unsigned long inlocal;
     unsigned long inremote;
     unsigned short local;
     unsigned short remote;
-
+    char *result;
+    time_t before, after;
 
     if (auth_fd2(scb->fd, &inlocal, &inremote,
 		 &local, &remote) == -1)
  	return NULL;
 
-    return auth_tcpuser2(inlocal, inremote, local, remote);
+    time(&before);
+    result = auth_tcpuser3(inlocal, inremote, local, remote, 20);
+    if (result == NULL && errno == ETIMEDOUT)
+	log ("Identd request to %s timed out.\n", hostname);
+    else
+    {
+	time(&after);
+	if (difftime(after, before) > 3)
+	    log ("Identd request to %s yielded %s after %d seconds.\n",
+		 hostname,
+		 result == NULL ? "(null)" :  result,
+		 (int)difftime(after, before));
+    }
+
+    return result;
 }
 #endif
diff --git a/src/server/rfc931.h b/src/server/rfc931.h
index 5e1380430f7d73b1971bb3b7dfe99acce2692f58..3158fc04c64ad65b163bf7978d27680cb538d3b9 100644
--- a/src/server/rfc931.h
+++ b/src/server/rfc931.h
@@ -1,5 +1,5 @@
 /*
- * $Id: rfc931.h,v 1.1 1992/03/31 21:51:34 ceder Exp $
+ * $Id: rfc931.h,v 1.2 1992/08/12 04:13:01 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -23,4 +23,5 @@
  * Please mail bug reports to bug-lyskom@lysator.liu.se. 
  */
 
-char *get_real_username(IscSession *scb);
+char *get_real_username(IscSession *scb,
+			char *hostname);