diff -Nabur u_old/ChangeLog u_new/ChangeLog
--- u_old/ChangeLog	2007-08-21 01:51:36.377615562 +0200
+++ u_new/ChangeLog	2007-08-21 01:57:39.119071662 +0200
@@ -1,3 +1,8 @@
+2007-08-21  Jan Krueger <jast@heapsort.de>
+
+	* ircd/channel.c (find_ban): Match normal bans against the
+	client's IP address if they fail to match against anything else.
+
 2007-08-11  Michael Poole <mdpoole@troilus.org>
 
 	* configure.ac: Remove AC_SYS_RESTARTABLE_SYSCALLS.
diff -Nabur u_old/ircd/channel.c u_new/ircd/channel.c
--- u_old/ircd/channel.c	2007-08-21 01:51:16.894959300 +0200
+++ u_new/ircd/channel.c	2007-08-21 01:51:05.941465904 +0200
@@ -426,7 +426,8 @@
     if (!((banlist->flags & BAN_IPMASK)
          && ipmask_check(&cli_ip(cptr), &banlist->address, banlist->addrbits))
         && match(hostmask, cli_user(cptr)->host)
-        && !(sr && !match(hostmask, sr)))
+        && !(sr && !match(hostmask, sr))
+        && !(!(banlist->flags & BAN_IPMASK) && !match(hostmask, iphost)))
         continue;
     /* If an exception matches, no ban can match. */
     if (banlist->flags & BAN_EXCEPTION)
