--- /dev/null
+diff -ur eggdrop1.6.13.long/src/botcmd.c eggdrop1.6.13.long.new/src/botcmd.c
+--- eggdrop1.6.13.long/src/botcmd.c Sat Nov 23 01:45:24 2002
++++ eggdrop1.6.13.long.new/src/botcmd.c Mon Dec 23 20:52:31 2002
+@@ -581,7 +581,7 @@
+ rfrom = from;
+ putlog(LOG_CMDS, "*", "#%s# unlink %s (%s)", rfrom, undes, par[0] ? par :
+ "No reason");
+- i = botunlink(-3, undes, par[0] ? par : NULL);
++ i = botunlink(-3, undes, par[0] ? par : NULL, rfrom);
+ if (i == 1) {
+ p = strchr(from, '@');
+ if (p) {
+diff -ur eggdrop1.6.13.long/src/botnet.c eggdrop1.6.13.long.new/src/botnet.c
+--- eggdrop1.6.13.long/src/botnet.c Thu Aug 8 16:49:32 2002
++++ eggdrop1.6.13.long.new/src/botnet.c Mon Dec 23 21:01:08 2002
+@@ -864,7 +864,7 @@
+
+ /* Break link with a tandembot
+ */
+-int botunlink(int idx, char *nick, char *reason)
++int botunlink(int idx, char *nick, char *reason, char *from)
+ {
+ char s[20];
+ register int i;
+@@ -908,15 +908,16 @@
+ bots = bots_in_subtree(bot);
+ users = users_in_subtree(bot);
+ if (reason && reason[0]) {
+- simple_sprintf(s, "%s %s (%s) (lost %d bot%s and %d user%s)",
+- BOT_UNLINKEDFROM, dcc[i].nick, reason, bots,
++ simple_sprintf(s, "%s %s (%s (%s)) (lost %d bot%s and %d user%s)",
++ BOT_UNLINKEDFROM, dcc[i].nick, reason, from, bots,
+ (bots != 1) ? "s" : "", users, (users != 1) ?
+ "s" : "");
+ dprintf(i, "bye %s\n", reason);
+ } else {
+- simple_sprintf(s, "%s %s (lost %d bot%s and %d user%s)",
+- BOT_UNLINKEDFROM, dcc[i].nick, bots, (bots != 1) ?
+- "s" : "", users, (users != 1) ? "s" : "");
++ simple_sprintf(s, "%s %s (%s) (lost %d bot%s and %d user%s)",
++ BOT_UNLINKEDFROM, dcc[i].nick, from, bots,
++ (bots != 1) ? "s" : "", users,
++ (users != 1) ? "s" : "");
+ dprintf(i, "bye No reason\n");
+ }
+ chatout("*** %s\n", s);
+diff -ur eggdrop1.6.13.long/src/cmds.c eggdrop1.6.13.long.new/src/cmds.c
+--- eggdrop1.6.13.long/src/cmds.c Tue Sep 10 22:14:44 2002
++++ eggdrop1.6.13.long.new/src/cmds.c Mon Dec 23 20:53:44 2002
+@@ -1163,14 +1163,14 @@
+ bot = newsplit(&par);
+ i = nextbot(bot);
+ if (i < 0) {
+- botunlink(idx, bot, par);
++ botunlink(idx, bot, par, dcc[idx].nick);
+ return;
+ }
+ /* If we're directly connected to that bot, just do it
+ * (is nike gunna sue?)
+ */
+ if (!egg_strcasecmp(dcc[i].nick, bot))
+- botunlink(idx, bot, par);
++ botunlink(idx, bot, par, dcc[i].nick);
+ else {
+ char x[40];
+
+diff -ur eggdrop1.6.13.long/src/patch.h eggdrop1.6.13.long.new/src/patch.h
+--- eggdrop1.6.13.long/src/patch.h Sat Nov 23 01:47:08 2002
++++ eggdrop1.6.13.long.new/src/patch.h Mon Dec 23 21:07:04 2002
+@@ -41,7 +41,7 @@
+ *
+ *
+ */
+-/* PATCH GOES HERE */
++patch("unlinkedby");
+ /*
+ *
+ *
+diff -ur eggdrop1.6.13.long/src/proto.h eggdrop1.6.13.long.new/src/proto.h
+--- eggdrop1.6.13.long/src/proto.h Tue Jan 1 22:46:36 2002
++++ eggdrop1.6.13.long.new/src/proto.h Mon Dec 23 20:54:36 2002
+@@ -69,7 +69,7 @@
+ void tell_bots(int);
+ void tell_bottree(int, int);
+ int botlink(char *, int, char *);
+-int botunlink(int, char *, char *);
++int botunlink(int, char *, char *, char *);
+ void dump_links(int);
+ void addbot(char *, char *, char *, char, int);
+ void updatebot(int, char *, char, int);
+diff -ur eggdrop1.6.13.long/src/tcldcc.c eggdrop1.6.13.long.new/src/tcldcc.c
+--- eggdrop1.6.13.long/src/tcldcc.c Thu Nov 21 18:53:08 2002
++++ eggdrop1.6.13.long.new/src/tcldcc.c Mon Dec 23 21:02:26 2002
+@@ -808,7 +808,7 @@
+ else {
+ x = 1;
+ if (!egg_strcasecmp(bot, dcc[i].nick))
+- x = botunlink(-2, bot, argv[2]);
++ x = botunlink(-2, bot, argv[2], botnetnick);
+ else
+ botnet_send_unlink(i, botnetnick, lastbot(bot), bot, argv[2]);
+ }