diff --git a/src/server/ChangeLog b/src/server/ChangeLog
index 63597f7518c1068c9cab2c50af3108173d782d47..2a7a35706c8531c18c785d209a182058058235e5 100644
--- a/src/server/ChangeLog
+++ b/src/server/ChangeLog
@@ -1,3 +1,13 @@
+Mon May 18 23:27:04 1992  Per Cederqvist  (ceder@lysator)
+
+	* connections.h (Connection): Added the boolean field
+	username_valid.
+	* internal-connections.c (new_client, EMPTY_CONNECTION):
+	Initialize it.
+	* prot-a.c (prot_a_parse_packet): Use it to test if username is
+	set or not (instead of just assuming that an empty username is
+	unset).
+
 Thu Apr 16 00:46:50 1992  Per Cederqvist  (ceder@lysator)
 
 	* Use isc-0.97:
diff --git a/src/server/connections.h b/src/server/connections.h
index 180c5d4b0b795988b60fd35627dbab57a15b723d..94a7fd21503ac784d33d6feece4524c114e21a07 100644
--- a/src/server/connections.h
+++ b/src/server/connections.h
@@ -1,5 +1,5 @@
 /*
- * $Id: connections.h,v 0.10 1992/04/10 11:56:32 ceder Exp $
+ * $Id: connections.h,v 0.11 1992/05/18 23:09:19 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -23,7 +23,7 @@
  * Please mail bug reports to bug-lyskom@lysator.liu.se. 
  */
 /*
- * $Id: connections.h,v 0.10 1992/04/10 11:56:32 ceder Exp $
+ * $Id: connections.h,v 0.11 1992/05/18 23:09:19 ceder Exp $
  *
   * connections.h -- The top level of the communication packet.
   *
@@ -44,7 +44,8 @@ typedef struct connection {
     struct connection * prev;
     struct connection * next;
     
-    /* The following are used by services.c */
+    /* The following are used by services.c (which has been split
+       into many files such as conference.c and person.c). */
 
     Pers_no		pers_no;         /* 0 if not yet logged in. */
     Person	      * person;	         /* NULL if not yet logged in. */
@@ -53,10 +54,11 @@ typedef struct connection {
     Conf_no		cwc;	         /* Current working conference */
     String		what_am_i_doing;
     u_char		ena_level;       /* Enable level */
-    String		username;        /* Userid and hostname. */
+    String		username;        /* Given userid. */
     String		hostname;        /* Real hostname  */
     String		ident_user; 	 /* Real username */
     Bool		invisible; 	 /* Is this session invisible? */
+    Bool		username_valid;	 /* Set once username is set. */
 
     /* The following are used by server/connections.c */
     
diff --git a/src/server/internal-connections.c b/src/server/internal-connections.c
index b3c7e9f763d4c697ac6b8d2d4c94be3ec25aee60..0bcea8fd5110350b07c204bb877da571fe80d0ff 100644
--- a/src/server/internal-connections.c
+++ b/src/server/internal-connections.c
@@ -1,5 +1,5 @@
 /*
- * $Id: internal-connections.c,v 0.9 1992/04/10 11:56:34 ceder Exp $
+ * $Id: internal-connections.c,v 0.10 1992/05/18 23:09:21 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -28,7 +28,7 @@
  * Abstract routines on the data type Connection.
  */
 
-static char *rcsid = "$Id: internal-connections.c,v 0.9 1992/04/10 11:56:34 ceder Exp $";
+static char *rcsid = "$Id: internal-connections.c,v 0.10 1992/05/18 23:09:21 ceder Exp $";
 
 
 #include "exp.h"
@@ -54,7 +54,7 @@ INTERNAL const Connection EMPTY_CONNECTION =
 		      0, NULL, NO_TIME, 0,
 		      EMPTY_STRING_i, 0,
 		      EMPTY_STRING_i, EMPTY_STRING_i, EMPTY_STRING_i,
-		      FALSE,
+		      FALSE, FALSE,
 		      /* Used by server/connections.c */
 		      NULL, '\0',
 		      0, 0, 0, 0, 0, 0, 0,
@@ -118,6 +118,7 @@ new_client(void)
     c->username = EMPTY_STRING;
     c->ident_user = EMPTY_STRING;
     c->invisible = FALSE;
+    c->username_valid = FALSE;
 
     return c;
 }
diff --git a/src/server/prot-a.c b/src/server/prot-a.c
index a334cc7e7da0e9615b4ed65c7d6214b4f84eaff2..0b4010398fdc87756cf5c2a940bbc9f05f5ac3b8 100644
--- a/src/server/prot-a.c
+++ b/src/server/prot-a.c
@@ -1,5 +1,5 @@
 /*
- * $Id: prot-a.c,v 0.14 1992/04/04 17:32:55 ceder Exp $
+ * $Id: prot-a.c,v 0.15 1992/05/18 23:09:23 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -26,7 +26,7 @@
  * Protocol A.
  */
 
-static char *rcsid = "$Id: prot-a.c,v 0.14 1992/04/04 17:32:55 ceder Exp $";
+static char *rcsid = "$Id: prot-a.c,v 0.15 1992/05/18 23:09:23 ceder Exp $";
 
 
 #include <stdio.h>
@@ -329,7 +329,7 @@ prot_a_is_legal_fnc(Call_header fnc)
 void
 prot_a_parse_packet(Connection *client)
 {
-    if ( s_empty(client->username) )
+    if ( client->username_valid == FALSE )
     {
 	/* Connection not established yet */
 
@@ -338,7 +338,8 @@ prot_a_parse_packet(Connection *client)
 	client->username = client->c_string0; /* Kludge to deal with */
 	client->c_string0 = EMPTY_STRING;     /* "A5B" as first input. */
 				/* Protokoll B will not suffer from this... */
-	
+
+	client->username_valid = TRUE;
 	mux_printf(client, "LysKOM\n");
 	mux_flush(client);
 	BUG(("[Client %d is logged on]\n", client->session_no));