diff -ru ircd-hybrid-7.2.3/modules/m_kline.c ircd-hybrid-7.2.3-kline/modules/m_kline.c
--- ircd-hybrid-7.2.3/modules/m_kline.c	2007-02-28 04:17:53.000000000 +0000
+++ ircd-hybrid-7.2.3-kline/modules/m_kline.c	2009-03-10 17:05:22.000000000 +0000
@@ -139,6 +139,7 @@
   time_t tkline_time = 0;
   time_t cur_time;
 
+
   if (!IsOperK(source_p))
   {
     sendto_one(source_p, form_str(ERR_NOPRIVS),
@@ -149,25 +150,33 @@
   if (parse_aline("KLINE", source_p, parc, parv,
 		  AWILD, &user, &host, &tkline_time, &target_server, &reason) < 0)
     return;
+  
+  /* ilog(L_WARN, "mo_kline %s %s %lu %s %s :%s ", source_p->name, target_server, tkline_time, user, host, reason); */
 
   if (target_server != NULL)
   {
-    if (HasID(source_p))
-    {
-      sendto_server(NULL, source_p, NULL, CAP_KLN|CAP_TS6, NOCAPS, LL_ICLIENT,
-                    ":%s KLINE %s %lu %s %s :%s",
-                    source_p->id, target_server, (unsigned long)tkline_time,
-                    user, host, reason);
-      sendto_server(NULL, source_p, NULL, CAP_KLN, CAP_TS6, LL_ICLIENT,
-                    ":%s KLINE %s %lu %s %s :%s",
-                    source_p->name, target_server, (unsigned long)tkline_time,
-                    user, host, reason);
-    }
-    else
-      sendto_server(NULL, source_p, NULL, CAP_KLN, NOCAPS, LL_ICLIENT,
-                    ":%s KLINE %s %lu %s %s :%s",
-                    source_p->name, target_server, (unsigned long)tkline_time,
-                    user, host, reason);
+/*    if (HasID(source_p))
+    {*/
+      /* parv[0]  parv[1]        parv[2]      parv[3]  parv[4]  parv[5] */
+      /* oper     target_server  tkline_time  user     host     reason */
+      sendto_match_servs(source_p, target_server, CAP_ENCAP,
+		    "ENCAP %s KLINE %lu %s %s :%s",
+                     target_server, tkline_time, user, host, reason);
+
+/*      sendto_server(NULL, source_p, NULL, CAP_KLN|CAP_TS6, NOCAPS, LL_ICLIENT,
+                    ":%s KLINE %s %lu %s %s :%s", 
+                    source_p->id, target_server, (unsigned long)tkline_time, 
+                    user, host, reason);*/
+/*      sendto_server(NULL, source_p, NULL, CAP_KLN, CAP_TS6, LL_ICLIENT,
+                    ":%s KLINE %s %lu %s %s :%s", 
+                    source_p->id, target_server, (unsigned long)tkline_time, 
+                    user, host, reason);*/
+/*    }
+    else*/
+/*      sendto_server(NULL, source_p, NULL, CAP_KLN, NOCAPS, LL_ICLIENT,
+                    ":%s KLINE %s %lu %s %s :%s", 
+                    source_p->id, target_server, (unsigned long)tkline_time, 
+                    user, host, reason);*/
 
     /* Allow ON to apply local kline as well if it matches */
     if (!match(target_server, me.name))
@@ -225,16 +234,18 @@
   time_t cur_time;
   char *kuser, *khost, *kreason, *oper_reason;
 
-  if (parc != 6 || EmptyString(parv[5]))
-    return;
+  /* ilog(L_WARN, "me_kline %d %s %s %s %s %s", parc, parv[0], parv[1], parv[2], parv[3], parv[4] ); */
 
-  if (!match(parv[1], me.name))
+  if (parc != 5 || EmptyString(parv[4]))
     return;
 
-  tkline_time = valid_tkline(parv[2], TK_SECONDS);
-  kuser = parv[3];
-  khost = parv[4];
-  kreason = parv[5];
+/*  if (!match(parv[1], me.name))
+    return; */
+
+  tkline_time = valid_tkline(parv[1], TK_SECONDS);
+  kuser = parv[2];
+  khost = parv[3];
+  kreason = parv[4];
 
   if ((oper_reason = strchr(kreason, '|')) != NULL)
     *oper_reason++ = '\0';
@@ -283,6 +294,7 @@
 {
   if (parc != 6 || EmptyString(parv[5]))
     return;
+  /* ilog(L_WARN, "ms_kline %s %s %s %s %s %s", parv[0], parv[1], parv[2], parv[3], parv[4], parv[5] ); */
 
   /* parv[0]  parv[1]        parv[2]      parv[3]  parv[4]  parv[5] */
   /* oper     target_server  tkline_time  user     host     reason */
@@ -290,6 +302,12 @@
                      "KLINE %s %s %s %s :%s",
                      parv[1], parv[2], parv[3], parv[4], parv[5]);
 
+  /* reformat parv to fit the changed me_kline() */
+  char *ptr = parv[0];
+  parv += 1;
+  parc -= 1;
+  parv[0] = ptr;
+
   me_kline(client_p, source_p, parc, parv);
 }
 
