diff --git a/src/include/kom-types.h b/src/include/kom-types.h
index 2b9518b17477b5e748f3d29d9659a806c0ff5a53..838ad4061025637009fb17132d8513d73ff99be5 100644
--- a/src/include/kom-types.h
+++ b/src/include/kom-types.h
@@ -1,5 +1,5 @@
 /*
- * $Id: kom-types.h,v 0.2 1991/09/15 10:12:59 linus Exp $
+ * $Id: kom-types.h,v 0.3 1991/10/23 16:20:16 ceder Exp $
  * Copyright (C) 1991  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -33,12 +33,12 @@
  *  this code, provided the people they give it to can.
  *
  *
- *  Author:	Thomas Bellman
- *		Lysator Computer Club
- *		Linkoping University
- *		Sweden
+ *  Filecreator: Thomas Bellman
+ *		  Lysator Computer Club
+ *		  Linkoping University
+ *		  Sweden
  *
- *  email:	Bellman@Lysator.LiU.SE
+ *  email:	  Bellman@Lysator.LiU.SE
  */
 
 
@@ -71,6 +71,43 @@ typedef 	u_long		Text_no;
 typedef		u_long		Local_text_no;
 typedef		u_long		Session_no;
 
+#ifdef PROT_a
+
+/*
+ * To uniquely identify a person, conference or text, three numbers
+ * are used: Universe, Site and X_{recpt,person,text}. The universe is
+ * omitted when it is LysKOM, or is implied by a echo conference.
+ */
+/*
+ * LysKOM, RFC-822, FidoNet, News are examples of universes.
+ */
+/*typedef		u_long		Universe;*/
+
+/*
+ * JAKOM, lysator.liu.se, 2:504/113, foo.bar.com are examples of sites
+ * in the above universes. (Note that comp.lang.c is _not_ a site in
+ * the News universe).
+ */
+/*typedef		u_long		Site;*/
+
+/*
+ * Fritt Forum, ceder, Per Cederqvist, comp.lang.c are examples of
+ * x_recpt in the above universes.
+ */
+
+/*
+ * But for now, we have a System_id (sum of Universe and Site) and a
+ * Global_x.
+ */
+
+typedef		u_long		System_id;
+typedef		u_long		Global_recpt;
+typedef		u_long		Global_person;
+typedef		u_long		Global_text;
+
+#endif
+
+
 #define	MAX_PERS_NO		((Pers_no) USHRT_MAX)
 #define MAX_CONF_NO		((Conf_no) USHRT_MAX)
 #define MAX_TEXT_NO		((Text_no) ULONG_MAX)
@@ -105,8 +142,8 @@ typedef	struct {
 	u_int	create_pers: 1;
 	u_int	create_conf: 1;
 	u_int	change_name: 1;
-	u_int	flg7	: 1;	/* For future use. */
-	u_int	flg8	: 1;
+	u_int	extern_gw : 1;
+	u_int	flg8	: 1;	/* For future use. */
 	u_int	flg9    : 1;
 	u_int	flg10   : 1;
 	u_int	flg11   : 1;
@@ -156,36 +193,53 @@ extern const Personal_flags DEFAULT_PERSONAL_FLAGS;
 
 
 /* See file doc/misc_items */
-typedef enum {	recpt     = 0,	/* 0 Recipient (conference) */
-		cc_recpt  = 1,	/* 1 Carbon Copy recipient (extra kopia) */
-#if 0
-		..._recpt =10,	/* 10 ...recipient (F|r k{nnedom) */
-/*		    Vad ska det heta p} engelska? */
-/* Please let this be a comment otherwise etags voids this file. */
+typedef enum {
+    recpt     = 0,	/* 0 Recipient (conference) */
+    cc_recpt  = 1,	/* 1 Carbon Copy recipient (extra kopia) */
+    comm_to   = 2,	/* 2 Comment to (text) */
+    comm_in   = 3,	/* 3 Commented in (text) */
+    footn_to  = 4,	/* 4 This is a footnote to (text) */
+    footn_in  = 5,	/* 5 Footnote to this text in (text) */
+#ifdef PROT_a
+    x_author  = 10,	/* 10 External author (Global_name). */
 #endif
-		comm_to   = 2,	/* 2 Comment to (text) */
-		comm_in   = 3,	/* 3 Commented in (text) */
-		footn_to  = 4,	/* 4 This is a footnote to (text) */
-		footn_in  = 5,	/* 5 Footnote to this text in (text) */
-
     
-		loc_no    = 6,	/* 6 Sequence number within conference */
-		rec_time  = 7,	/* 7 Received at (time) */
-		sent_by   = 8,	/* 8 Sent by (person) */
-		sent_at   = 9		/* 9 Sent at (time) */
+    loc_no    = 6,	/* 6 Sequence number within conference */
+    rec_time  = 7,	/* 7 Received at (time) */
+    sent_by   = 8,	/* 8 Sent by (person) */
+    sent_at   = 9	/* 9 Sent at (time) */
+#ifdef PROT_a
+	,
+    x_person  = 11,	/* 11 External person id. (Global_name). */
+    x_recpt   = 12,	/* 12 External recipient. (Global_name). */
+    x_text    = 13,	/* 13 External text. (Global_text). */
+    x_system  = 14	/* 14 External system identification (System_id). */
+#endif
 } Info_type;
 
 typedef	union {
 		Conf_no		recipient;
 		Conf_no		cc_recipient;
-		Local_text_no	local_no;
-		Time		received_at;
 		Text_no		comment_to;
 		Text_no		commented_in;
 		Text_no		footnote_to;
 		Text_no		footnoted_in;
+
+#ifdef PROT_a
+		Global_name	x_author; /* Protocol a. */
+#endif
+
+		Local_text_no	local_no;
+		Time		received_at;
 		Pers_no		sender;
 		Time		sent_at;
+
+#ifdef PROT_a
+		Global_name	global_person;
+		Global_name	global_recpt;
+		Global_text	global_text;
+		System_id	system_id;
+#endif
 } Info_datum;