After release of 2.5.0, two separate reports of problems with
  deny !nameserved msgfile
were received.  Basically, the daemon was treating '!nameserved' as
a host name and not fully giving it the special treatment it needs.
This problem has been in the daemon since, at least, version 2.4
was not unmasked until 2.5.0 added '!' syntax to hostmatch().

Index: src/access.c
===================================================================
RCS file: /cvsroot/wu-ftpd-stable/src/access.c,v
retrieving revision 1.6
diff -c -r1.6 access.c
*** src/access.c	1999/05/20 10:48:54	1.6
--- src/access.c	1999/05/26 13:17:13
***************
*** 1128,1138 ****
      while (getaclentry("deny", &entry)) {
          if (!ARG0)
              continue;
!         if (!nameserved && !strcasecmp(ARG0, "!nameserved")) {
              if (ARG1)
                  strcpy(msgpathbuf, entry->arg[1]);
              return (1);
          }
          if (hostmatch(ARG0,remoteaddr,remotehost)) {
              if (ARG1)
                  strcpy(msgpathbuf, entry->arg[1]);
--- 1128,1141 ----
      while (getaclentry("deny", &entry)) {
          if (!ARG0)
              continue;
! 	if (strcasecmp(ARG0, "!nameserved") == 0) {
!           if (!nameserved) {
              if (ARG1)
                  strcpy(msgpathbuf, entry->arg[1]);
              return (1);
+           }
          }
+         else
          if (hostmatch(ARG0,remoteaddr,remotehost)) {
              if (ARG1)
                  strcpy(msgpathbuf, entry->arg[1]);
