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	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/include/client.h	Wed Jun 20 16:15:20 2001
@@ -383,7 +383,7 @@
  */
 #define UMODE_IMMUNE         16 /* immune from kick/deop */
 #define UMODE_OPER           17 /* Operator */
-#define UMODE_LOCOP          18 /* Local operator -- SRB */
+/*#define UMODE_LOCOP          18 *//* Local operator -- SRB */
 #define UMODE_AUSPEX         19 /* See the invisible. */
 #define UMODE_IDENTIFIED     20 /* Registered and identified with NickServ -- MGS */
 #define UMODE_CHCREATE       21 /* Channel Creation Notices */
@@ -478,20 +478,18 @@
 #endif
 
 /* oper flags */
-#define MyOper(x)               (MyConnect(x) && IsOper(x))
 #define IsOper(x)               (TestBit((x)->umodes,UMODE_OPER))
 #ifdef GODOPERS
 #define IsGodOper(x)            (TestBit((x)->umodes,UMODE_GOD))
 #else
 #define IsGodOper(x)            0
 #endif
-#define IsLocOp(x)              (TestBit((x)->umodes,UMODE_LOCOP))
-#define IsAnOper(x)             (IsOper(x) || IsLocOp(x))
+/*#define IsLocOp(x)              (TestBit((x)->umodes,UMODE_LOCOP))*/
+#define IsAnOper(x)             (IsOper(x))
 #define SetOper(x)              (SetBit((x)->umodes,UMODE_OPER))
 #define SetLocOp(x)             (SetBit((x)->umodes,UMODE_LOCOP))
 #define ClearOper(x)            (ClearBit((x)->umodes,UMODE_OPER))
 #define ClearLocOp(x)           (ClearBit((x)->umodes,UMODE_LOCOP))
-#define IsPrivileged(x)         (IsAnOper(x) || IsServer(x))
 
 /* umode flags */
 #define IsInvisible(x)          (TestBit((x)->umodes,UMODE_INVISIBLE))
@@ -546,23 +544,22 @@
 #define CanChangeModes(x)       (TestBit((x)->umodes,UMODE_SETNAME))
 #define CanGrantModes(x)        (TestBit((x)->umodes,UMODE_GRANT))
 #define CanSeeRouting(x)        (TestBit((x)->umodes,UMODE_SEEROUTING))
+#define CanKill(x)              (TestBit((x)->umodes,UMODE_KILL))
 
 #define SeesAllConnections(x)	(TestBit((x)->umodes,UMODE_AUSPEX))
 #define IsIdentifiedNick(x)     (TestBit((x)->umodes,UMODE_IDENTIFIED))
 #define SetIdentifiedNick(x)    (SetBit((x)->umodes,UMODE_IDENTIFIED))
 #define ClearIdentifiedNick(x)  (ClearBit((x)->umodes,UMODE_IDENTIFIED))
 #define IsBlockingUnidented(x)  (TestBit((x)->umodes,UMODE_BLOCK_NOTID))
-/* #define SetBlockingUnidented(x) (SetBit((x)->umodes,UMODE_BLOCK_NOTID)) */
-/* #define ClearBlockingUnidented(x) (ClearBit((x)->umodes,UMODE_BLOCK_NOTID)) */
 
 #ifdef REJECT_HOLD
 #define IsRejectHeld(x)         ((x)->flags & FLAGS_REJECT_HOLD)
 #define SetRejectHold(x)        ((x)->flags |= FLAGS_REJECT_HOLD)
 #endif
 
-#define SetIpHash               ((x)->flags |= FLAGS_IPHASH)
-#define ClearIpHash             ((x)->flags &= ~FLAGS_IPHASH)
-#define IsIpHash                ((x)->flags & FLAGS_IPHASH)
+#define SetIpHash(x)            ((x)->flags |= FLAGS_IPHASH)
+#define ClearIpHash(x)          ((x)->flags &= ~FLAGS_IPHASH)
+#define IsIpHash(x)             ((x)->flags & FLAGS_IPHASH)
 
 #define SetNeedId(x)            ((x)->flags |= FLAGS_NEEDID)
 #define IsNeedId(x)             (((x)->flags & FLAGS_NEEDID) != 0)
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	Wed Jun 20 16:23:59 2001
+++ ircd-hybrid-6.0/include/s_conf.h	Wed Jun 20 16:15:59 2001
@@ -241,7 +241,7 @@
 #define CONF_CLIENT             0x0002
 #define CONF_CONNECT_SERVER     0x0004
 #define CONF_NOCONNECT_SERVER   0x0008
-#define CONF_LOCOP              0x0010
+/*#define CONF_LOCOP              0x0010*/
 #define CONF_OPERATOR           0x0020
 #define CONF_ME                 0x0040
 #define CONF_KILL               0x0080
@@ -265,7 +265,7 @@
 #define CONF_XLINE              0x40000
 #define CONF_ULINE              0x80000
 
-#define CONF_OPS                (CONF_OPERATOR | CONF_LOCOP)
+#define CONF_OPS                (CONF_OPERATOR)
 #define CONF_SERVER_MASK        (CONF_CONNECT_SERVER | CONF_NOCONNECT_SERVER)
 #define CONF_CLIENT_MASK        (CONF_CLIENT | CONF_OPS | CONF_SERVER_MASK)
 
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/include/umodes.h ircd-hybrid-6.0/include/umodes.h
--- ircd-hybrid-6.0.orig/include/umodes.h	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/include/umodes.h	Wed Jun 20 16:11:14 2001
@@ -62,7 +62,7 @@
   {UMODE_NCHANGE, 'n'},
   {UMODE_ANYNICK, 'N'},
   {UMODE_OPER, 'o'},
-  {UMODE_LOCOP, 'O'},
+  /*  {UMODE_LOCOP, 'O'},*/
 #ifdef GODOPERS
   {UMODE_GOD,   'p'},
 #endif
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/m_close.c ircd-hybrid-6.0/src/m_close.c
--- ircd-hybrid-6.0.orig/src/m_close.c	Fri Jul 30 05:01:32 1999
+++ ircd-hybrid-6.0/src/m_close.c	Wed Jun 20 16:04:46 2001
@@ -97,7 +97,7 @@
   int            i;
   int            closed = 0;
 
-  if (!MyOper(sptr))
+  if (!CanKill(sptr))
     {
       sendto_one(sptr, form_str(ERR_NOPRIVILEGES), me.name, parv[0]);
       return 0;
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/m_connect.c ircd-hybrid-6.0/src/m_connect.c
--- ircd-hybrid-6.0.orig/src/m_connect.c	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/src/m_connect.c	Wed Jun 20 16:20:29 2001
@@ -121,13 +121,6 @@
       return -1;
     }
 
-  if (IsLocOp(sptr) && parc > 3) {
-    /* 
-     * Only allow LocOps to make local CONNECTS --SRB
-     */
-    return 0;
-  }
-
   if (MyConnect(sptr) && !IsSetOperRemote(sptr) && parc > 3)
     {
       sendto_one(sptr,":%s NOTICE %s :You have no R umode", me.name, parv[0]);
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/m_kill.c ircd-hybrid-6.0/src/m_kill.c
--- ircd-hybrid-6.0.orig/src/m_kill.c	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/src/m_kill.c	Wed Jun 20 16:21:45 2001
@@ -119,15 +119,12 @@
   user = parv[1];
   path = parv[2]; /* Either defined or NULL (parc >= 2!!) */
 
-  if (!IsPrivileged(cptr))
+  if (!(IsServer(cptr) || CanKill(sptr)))
     {
-      sendto_one(sptr, form_str(ERR_NOPRIVILEGES), me.name, parv[0]);
-      return 0;
-    }
-
-  if (MyClient(sptr) && !IsSetOperK(sptr))
-    {
-      sendto_one(sptr,":%s NOTICE %s :You have no K umode",me.name,parv[0]);
+      if (SeesOperMessages(sptr))
+	sendto_one(sptr,":%s NOTICE %s :You have no K umode",me.name,parv[0]);
+      else
+	sendto_one(sptr, form_str(ERR_NOPRIVILEGES), me.name, parv[0]);
       return 0;
     }
 
@@ -155,11 +152,7 @@
                  me.name, parv[0], user, acptr->name);
       chasing = 1;
     }
-  if (!MyConnect(acptr) && IsLocOp(cptr))
-    {
-      sendto_one(sptr, form_str(ERR_NOPRIVILEGES), me.name, parv[0]);
-      return 0;
-    }
+
   if (IsServer(acptr) || IsMe(acptr))
     {
       sendto_one(sptr, form_str(ERR_CANTKILLSERVER),
@@ -167,7 +160,7 @@
       return 0;
     }
 
-  if (MyOper(sptr) && !MyConnect(acptr) && !IsSetOperGlobalKill(sptr))
+  if (MyConnect(sptr) && !MyConnect(acptr) && !IsSetOperGlobalKill(sptr))
     {
       sendto_one(sptr, ":%s NOTICE %s :Nick %s isnt on your server",
                  me.name, parv[0], acptr->name);
@@ -187,9 +180,9 @@
       inpath = cptr->host;
       if (!BadPtr(path))
         {
-          ircsprintf(buf, "%s!%s%s (%s)",
+          ircsprintf(buf, "%s!%s (%s)",
                      cptr->username, cptr->name,
-                     IsLocOp(sptr) ? "(L)" : "", path);
+                     path);
           path = buf;
           reason = path;
         }
@@ -206,11 +199,6 @@
   ** Note: "acptr->name" is used instead of "user" because we may
   **     have changed the target because of the nickname change.
   */
-  if (IsLocOp(sptr) && !MyConnect(acptr))
-    {
-      sendto_one(sptr, form_str(ERR_NOPRIVILEGES), me.name, parv[0]);
-      return 0;
-    }
 
   if(BadPtr(parv[2]))
     {
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/m_oper.c ircd-hybrid-6.0/src/m_oper.c
--- ircd-hybrid-6.0.orig/src/m_oper.c	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/src/m_oper.c	Wed Jun 20 16:22:16 2001
@@ -195,12 +195,14 @@
       OrUmodes(sptr->umodes, sptr->umodes, aconf->default_umodes);
       AndUmodes(sptr->umodes, sptr->umodes, sptr->allowed_umodes);
 
+#if 0
       if (aconf->status == CONF_LOCOP)
         {
           SetLocOp(sptr);
 	  SetBit(sptr->allowed_umodes,UMODE_LOCOP);
         }
       else
+#endif
         {
           SetOper(sptr);
 	  SetBit(sptr->allowed_umodes,UMODE_OPER);
@@ -227,19 +229,18 @@
       else
 	fdlist_add(sptr->fd, FDL_OPER);
 #ifdef CUSTOM_ERR
-      sendto_ops_flag(UMODE_SERVNOTICE, "%s (%s@%s) just activated an %c-line, hmmm.", parv[0],
+      sendto_ops_flag(UMODE_SERVNOTICE, "%s (%s@%s) just activated an O:line, hmmm.", parv[0],
 #else
-      sendto_ops_flag(UMODE_SERVNOTICE, ("%s (%s@%s) is now operator (%c)", parv[0],
+      sendto_ops_flag(UMODE_SERVNOTICE, ("%s (%s@%s) is now operator", parv[0],
 #endif /* CUSTOM_ERR */
-						      sptr->username, sptr->host,
-						      IsLocOp(sptr) ? 'o' : 'O');
+						      sptr->username, sptr->host);
       send_umode_out(cptr, sptr, old);
       sendto_one(sptr, form_str(RPL_YOUREOPER), me.name, parv[0]);
       {
 	umode_t privs;
 	AndNotUmodes(privs, sptr->allowed_umodes, user_umodes);
 	ClearBit(privs, UMODE_OPER);
-	ClearBit(privs, UMODE_LOCOP);
+/* 	ClearBit(privs, UMODE_LOCOP); */
 	sendto_one(sptr, ":%s NOTICE %s :*** Oper privs are %s",me.name,parv[0],
 		   oper_flags_as_string(privs));
       }
diff -ruN -x configure -x *~ -x ircd-hybrid-6.0.orig -x *.rej ircd-hybrid-6.0.orig/src/m_squit.c ircd-hybrid-6.0/src/m_squit.c
--- ircd-hybrid-6.0.orig/src/m_squit.c	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/src/m_squit.c	Wed Jun 20 16:22:24 2001
@@ -207,11 +207,6 @@
                  me.name, parv[0], server);
       return 0;
     }
-  if (IsLocOp(sptr) && !MyConnect(acptr))
-    {
-      sendto_one(sptr, form_str(ERR_NOPRIVILEGES), me.name, parv[0]);
-      return 0;
-    }
 
   if (MyClient(sptr) && !IsSetOperRemote(sptr) && !MyConnect(acptr))
     {
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	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/src/s_conf.c	Wed Jun 20 16:20:05 2001
@@ -261,7 +261,7 @@
   { CONF_LEAF,             RPL_STATSLLINE, 'L'},
   { CONF_OPERATOR,         RPL_STATSOLINE, 'O'},
   { CONF_HUB,              RPL_STATSHLINE, 'H'},
-  { CONF_LOCOP,            RPL_STATSOLINE, 'o'},
+  /*  { CONF_LOCOP,            RPL_STATSOLINE, 'o'},*/
   { 0, 0, '\0' }
 };
 
@@ -315,7 +315,7 @@
                          get_conf_class(tmp));
 
           }
-        else if(mask & (CONF_OPERATOR|CONF_LOCOP))
+        else if(mask & (CONF_OPERATOR))
           {
             /* Don't allow non opers to see oper privs */
             if(SeesOpers(sptr))
@@ -1027,10 +1027,10 @@
    * -Dianora
    */
 #ifdef OLD_Y_LIMIT
-  if ((aconf->status & (CONF_LOCOP | CONF_OPERATOR | CONF_CLIENT)) &&
+  if ((aconf->status & (CONF_OPERATOR | CONF_CLIENT)) &&
     aconf->clients >= ConfMaxLinks(aconf) && ConfMaxLinks(aconf) > 0)
 #else
-  if ( (aconf->status & (CONF_LOCOP | CONF_OPERATOR ) ) == 0 )
+  if ( (aconf->status & ( CONF_OPERATOR ) ) == 0 )
     {
       if ((aconf->status & CONF_CLIENT) &&
           ConfLinks(aconf) >= ConfMaxLinks(aconf) && ConfMaxLinks(aconf) > 0)
@@ -1189,7 +1189,7 @@
       if (!match(tmp->host, host) || !match(tmp->user,user)
           || irccmp(tmp->name, name) )
         continue;
-      if (tmp->status & (CONF_OPERATOR|CONF_LOCOP))
+      if (tmp->status & (CONF_OPERATOR))
         {
           if (tmp->clients < ConfMaxLinks(tmp))
             return tmp;
@@ -1698,6 +1698,7 @@
                         ClassType(class_ptr));
           fbputs(result_buf, out);
         }
+#if 0
       else if(aconf->status == CONF_LOCOP)
         {
           (void)sprintf(result_buf,"o:%s@%s:%s:%s::%d\n",
@@ -1707,6 +1708,7 @@
                         ClassType(class_ptr));
           fbputs(result_buf, out);
         }
+#endif
       else if(aconf->status == CONF_ADMIN)
         {
           (void)sprintf(result_buf,"A:%s:%s:%s::\n",
@@ -2022,7 +2024,8 @@
           /* Local Operator, (limited privs --SRB) */
 
         case 'o':
-          aconf->status = CONF_LOCOP;
+	  log(L_WARN, "Locops are not supported by this server");
+	  /*          aconf->status = CONF_LOCOP;*/
           break;
 
         case 'P': /* listen port line */
@@ -2082,7 +2085,7 @@
           DupString(aconf->user, tmp);
 
 	  /* port field */
-          if((aconf->status & CONF_OPERATOR) | (aconf->status & CONF_LOCOP))
+          if(aconf->status & CONF_OPERATOR)
             {
               /* defaults */
 	      ClearBitfield(aconf->allowed_umodes);
@@ -2124,7 +2127,7 @@
                 }
             }
 
-          if(aconf->status & (CONF_LOCOP|CONF_OPERATOR))
+          if(aconf->status & CONF_OPERATOR)
             {
 	      ClearBitfield(aconf->default_umodes);
               if ((tmp = getfield(NULL)) == NULL)
@@ -2248,7 +2251,7 @@
                    * -Dianora
                    */
                   bconf->flags = aconf->flags;
-                  if(bconf->flags & (CONF_LOCOP|CONF_OPERATOR))
+                  if(bconf->flags & CONF_OPERATOR)
                     bconf->port = aconf->port;
                 }
               free_conf(aconf);
@@ -2284,11 +2287,11 @@
       
       /* o: or O: line */
 
-      if (aconf->status & (CONF_LOCOP|CONF_OPERATOR))
+      if (aconf->status & CONF_OPERATOR)
         {
           if(SplitUserHost(aconf) < 0)
             {
-              sendto_ops_flag(UMODE_SERVNOTICE,"Bad O/o line host %s", aconf->host);
+              sendto_ops_flag(UMODE_SERVNOTICE,"Bad O line host %s", aconf->host);
               free_conf(aconf);
               aconf = NULL;
 	      continue;
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	Wed Jun 20 16:24:00 2001
+++ ircd-hybrid-6.0/src/s_user.c	Wed Jun 20 16:23:11 2001
@@ -116,9 +116,8 @@
       ++j;
       if (MyClient(cptr) && SeesOpers(cptr))
         {
-          sendto_one(cptr, ":%s %d %s :[%c][%s] %s (%s@%s) Idle: %d",
+          sendto_one(cptr, ":%s %d %s :[%s] %s (%s@%s) Idle: %d",
                      me.name, RPL_STATSDEBUG, cptr->name,
-                     IsLocOp(cptr2) ? 'o' : 'O',
                      oper_flags_as_string(cptr2->confs->value.aconf->allowed_umodes),
                      cptr2->name,
                      cptr2->username, cptr2->host,
@@ -126,9 +125,8 @@
         }
       else
         {
-          sendto_one(cptr, ":%s %d %s :[%c] %s (%s@%s) Idle: %d",
+          sendto_one(cptr, ":%s %d %s :%s (%s@%s) Idle: %d",
                      me.name, RPL_STATSDEBUG, cptr->name,
-                     IsLocOp(cptr2) ? 'o' : 'O',
                      cptr2->name,
                      cptr2->username, cptr2->host,
                      CurrentTime - cptr2->user->last);
@@ -2170,7 +2168,7 @@
 		  break;
 
 		ClearBit(acptr->umodes, UMODE_OPER);
-		ClearBit(acptr->umodes, UMODE_LOCOP);
+		/*		ClearBit(acptr->umodes, UMODE_LOCOP);*/
 
 		Count.oper--;
 
@@ -2183,8 +2181,7 @@
 		    aClient *cur_cptr = oper_cptr_list;
 
 		    fdlist_delete(acptr->fd, FDL_OPER | FDL_BUSY);
-		    if (acptr->confs->value.aconf->status &
-			(CONF_OPERATOR|CONF_LOCOP))
+		    if (acptr->confs->value.aconf->status & CONF_OPERATOR)
 		      detach_conf(acptr,acptr->confs->value.aconf);
 		    while(cur_cptr)
 		      {
@@ -2225,7 +2222,7 @@
 	  default :
 	    if((flag = user_modes_from_c_to_bitmask[(unsigned char)*m]))
 	      {
-		if ((flag == UMODE_OPER) || (flag == UMODE_LOCOP))
+		if (flag == UMODE_OPER)
 		  break;
 		if (what == MODE_ADD)
 		  SetBit(acptr->umodes, flag);
