diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/include/client.h ircd-hybrid-6.0/include/client.h
--- ircd-hybrid-6.0.orig/include/client.h	Sun May 27 17:36:44 2001
+++ ircd-hybrid-6.0/include/client.h	Sun May 27 17:36:05 2001
@@ -340,6 +340,7 @@
 #define FLAGS_LOCOP        0x08000 /* Local operator -- SRB */
 #define FLAGS_AUSPEX       0x10000 /* See the invisible. */
 #define FLAGS_IDENTIFIED   0x20000 /* Registered and identified with NickServ -- MGS */
+#define FLAGS_CHCREATE    0x80000 /* Channel Creation Notices */
 
 #define FLAGS_GOD          0x400000 /* greater deity */
 /* Last flag is 0x80000000 for 32-bit unsigned int */
@@ -363,6 +364,7 @@
 #define FLAGS2_OPER_REHASH      0x1000  /* oper can rehash */
 #define FLAGS2_OPER_IMMUNE	0x2000	/* oper can umode m */
 #define FLAGS2_OPER_AUSPEX	0x800000 /* oper can see the invisible */
+#define FLAGS2_OPER_CHCREATE	0x2000000 /* oper sees local chan creations */
 					 /* Careful of the numbering if you add another flag... */
 #define FLAGS2_OPER_GOD         0x4000000 /* oper can have an apotheosis */
 #define FLAGS2_OPER_FLAGS       (FLAGS2_OPER_GLOBAL_KILL | \
@@ -375,7 +377,8 @@
                                  FLAGS2_OPER_DIE | \
                                  FLAGS2_OPER_REHASH | \
                                  FLAGS2_OPER_IMMUNE | \
-                                 FLAGS2_OPER_AUSPEX)
+                                 FLAGS2_OPER_AUSPEX | \
+                                 FLAGS2_OPER_CHCREATE)
 /* ZIP_LINKS */
 
 #define FLAGS2_ZIP           0x4000  /* (server) link is zipped */
@@ -405,11 +408,12 @@
                       FLAGS_NCHANGE | FLAGS_OPERWALL | FLAGS_DEBUG | \
                       FLAGS_BOTS | FLAGS_EXTERNAL | FLAGS_LOCOP | \
                       FLAGS_GOD | FLAGS_IMMUNE | FLAGS_AUSPEX | \
-                      FLAGS_IDENTIFIED)
+                      FLAGS_IDENTIFIED | FLAGS_CHCREATE)
 
 #ifndef OPER_UMODES
 #define OPER_UMODES  (FLAGS_OPER | FLAGS_WALLOP | FLAGS_SERVNOTICE | \
-                      FLAGS_SPY | FLAGS_OPERWALL | FLAGS_DEBUG | FLAGS_BOTS)
+                      FLAGS_SPY | FLAGS_OPERWALL | FLAGS_DEBUG | FLAGS_BOTS \
+                      FLAGS_CHCREATE)
 #endif /* OPER_UMODES */
 
 #ifndef LOCOP_UMODES
@@ -468,6 +472,11 @@
 #define SendNickChange(x)       ((x)->umodes & FLAGS_NCHANGE)
 #define SetWallops(x)           ((x)->umodes |= FLAGS_WALLOP)
 #define IsImmune(x)             ((x)->umodes & FLAGS_IMMUNE)
+
+#ifdef CHANNEL_CREATION_NOTICE
+#define SeesChannelCreations(x) ((x)->umodes & FLAGS_CHCREATE)
+#endif
+
 #define SeesAllConnections(x)	((x)->umodes & FLAGS_AUSPEX)
 #define IsIdentifiedNick(x)     ((x)->umodes & FLAGS_IDENTIFIED)
 #define SetIdentifiedNick(x)    ((x)->umodes |= FLAGS_IDENTIFIED)
@@ -541,6 +550,12 @@
 #define SetOperM(x)             ((x)->flags2 |= FLAGS2_OPER_IMMUNE)
 #define IsSetOperAuspex(x)	((x)->flags2 & FLAGS2_OPER_AUSPEX)
 #define SetOperAuspex(x)	((x)->flags2 |= FLAGS2_OPER_AUSPEX)
+
+#ifdef CHANNEL_CREATION_NOTICE
+#define IsSetOperChanCreate(x)	((x)->flags2 & FLAGS2_OPER_CHCREATE)
+#define SetOperChanCreate(x)	((x)->flags2 |= FLAGS2_OPER_CHCREATE)
+#endif
+
 #define CBurst(x)               ((x)->flags2 & FLAGS2_CBURST)
 
 /*
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/include/config.h ircd-hybrid-6.0/include/config.h
--- ircd-hybrid-6.0.orig/include/config.h	Sun May 27 17:36:43 2001
+++ ircd-hybrid-6.0/include/config.h	Sun May 27 17:34:51 2001
@@ -393,6 +393,11 @@
  */
 #undef WHOIS_NOTICE
 
+/* CHANNEL_CREATION_NOTICE - Shows a notice when someone creates
+ * a new channel
+ */
+#define CHANNEL_CREATION_NOTICE
+
 /* WHOIS_WAIT - minimum seconds between remote use of WHOIS before
  * max use count is reset
  */
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/include/s_conf.h ircd-hybrid-6.0/include/s_conf.h
--- ircd-hybrid-6.0.orig/include/s_conf.h	Sun May 27 17:36:43 2001
+++ ircd-hybrid-6.0/include/s_conf.h	Sun May 27 17:34:51 2001
@@ -329,6 +329,7 @@
 #define CONF_OPER_DIE       128
 #define CONF_OPER_M         256
 #define CONF_OPER_AUSPEX    512
+#define CONF_OPER_CHCREATE 1024
 #define CONF_OPER_GOD      2048
 
 typedef struct
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/channel.c ircd-hybrid-6.0/src/channel.c
--- ircd-hybrid-6.0.orig/src/channel.c	Sun May 27 17:36:44 2001
+++ ircd-hybrid-6.0/src/channel.c	Sun May 27 17:34:51 2001
@@ -2252,6 +2252,13 @@
       chptr->channelts = CurrentTime;     /* doesn't hurt to set it here */
       add_to_channel_hash_table(chname, chptr);
       Count.chan++;
+
+#ifdef CHANNEL_CREATION_NOTICE
+      if(IsPerson(cptr) && !IsServer(cptr)) {
+        sendto_ops_flags_butone(NULL, FLAGS_CHCREATE, "Channel %s created by %s!%s@%s on %s", chptr->chname, cptr->name, 
+		       cptr->username, cptr->host, me.name);
+      }
+#endif /* CHANNEL_CREATION_NOTICE */
     }
   return chptr;
 }
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/messages_cust.tab ircd-hybrid-6.0/src/messages_cust.tab
--- ircd-hybrid-6.0.orig/src/messages_cust.tab	Sun May 27 17:36:44 2001
+++ ircd-hybrid-6.0/src/messages_cust.tab	Sun May 27 17:34:51 2001
@@ -28,7 +28,7 @@
 /* 001  RPL_WELCOME, */ ":%s 001 %s :Welcome to the Internet Relay Network %s",
 /* 002  RPL_YOURHOST,*/ ":%s 002 %s :Your host is %s, running version %s",
 /* 003  RPL_CREATED, */ ":%s 003 %s :This server was cobbled together %s",
-/* 004  RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcrkfydnxbma biklmnopstved",
+/* 004  RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcrkfydnxbmal biklmnopstved",
 /* 005 */       (char *)NULL,
 /* 006 */       (char *)NULL,
 /* 007 */       (char *)NULL,
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/s_conf.c ircd-hybrid-6.0/src/s_conf.c
--- ircd-hybrid-6.0.orig/src/s_conf.c	Sun May 27 17:36:43 2001
+++ ircd-hybrid-6.0/src/s_conf.c	Sun May 27 17:34:51 2001
@@ -3009,6 +3009,12 @@
         int_privs |= CONF_OPER_AUSPEX;      /* allow seeing the invisible */
       else if(*privs == 'a')
         int_privs &= ~CONF_OPER_AUSPEX;     /* disallow seeing the invisible */
+#ifdef CHANNEL_CREATION_NOTICE
+      else if(*privs == 'L')
+        int_privs |= CONF_OPER_CHCREATE;    /* allow seeing new chans */
+      else if(*privs == 'l')
+        int_privs &= ~CONF_OPER_CHCREATE;   /* disallow seeing new  chans */
+#endif /* CHANNEL_CREATION_NOTICE */
 
       privs++;
     }
@@ -3131,6 +3137,17 @@
     }
   else
     *privs_ptr++ = 'd';
+
+#ifdef CHANNEL_CREATION_NOTICE
+  if(port & CONF_OPER_CHCREATE)
+    {
+      if(cptr)
+        SetOperChanCreate(cptr);
+      *privs_ptr++ = 'L';
+    }
+  else
+    *privs_ptr++ = 'l';
+#endif
 
   *privs_ptr = '\0';
 
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/s_user.c ircd-hybrid-6.0/src/s_user.c
--- ircd-hybrid-6.0.orig/src/s_user.c	Sun May 27 17:36:44 2001
+++ ircd-hybrid-6.0/src/s_user.c	Sun May 27 17:34:51 2001
@@ -90,6 +90,9 @@
   {FLAGS_SKILL, 'k'},
   {FLAGS_IMMUNE, 'm'},
   {FLAGS_NCHANGE, 'n'},
+#ifdef CHANNEL_CREATION_NOTICE
+  {FLAGS_CHCREATE, 'l'},
+#endif
   {FLAGS_NINVITE, 'I'},
   {FLAGS_OPER, 'o'},
   {FLAGS_LOCOP, 'O'},
@@ -154,7 +157,11 @@
   FLAGS_INVISIBLE, /* i */
   0,            /* j */
   FLAGS_SKILL,  /* k */
-  0,            /* l */
+#ifdef CHANNEL_CREATION_NOTICE
+  FLAGS_CHCREATE, /* l */
+#else
+  0,		/* l */
+#endif
   FLAGS_IMMUNE, /* m */
   FLAGS_NCHANGE, /* n */
   FLAGS_OPER,   /* o */
@@ -2307,12 +2314,22 @@
       acptr->umodes &= USER_UMODES | ~ALL_UMODES;
     }
 
+#ifdef CHANNEL_CREATION_NOTICE
+  if (acptr->umodes & FLAGS_CHCREATE && !IsSetOperChanCreate(sptr))
+    {
+      sendto_one(sptr,":%s NOTICE %s :*** You need oper and L flag for +l",
+                     me.name,parv[0]);
+      acptr->umodes &= ~FLAGS_CHCREATE;
+    }
+#endif /* CHANNEL_CREATION_NOTICE */
+
   if ((acptr->umodes & FLAGS_NCHANGE) && !IsSetOperN(sptr))
     {
       sendto_one(sptr,":%s NOTICE %s :*** You need oper and N flag for +n",
                  me.name,parv[0]);
       acptr->umodes &= ~FLAGS_NCHANGE; /* only tcm's really need this */
     }
+
 
   if ((acptr->umodes & FLAGS_IMMUNE) && !IsSetOperM(sptr) && MyClient(sptr) && !IsServer(cptr))
     {
