int main(int argc, char *argv[])
 {
        int                                     fd, i;
+       int                     dtablesize;
        struct sockaddr_in      a;
        char                       *mysubj = NULL;
        int                                     opt;
        struct timeval          to;
 
 
+       /* keep this at start of main() ! */
+       dtablesize = getdtablesize();
+       for (fd=3; fd < dtablesize ; fd++) close(fd);
 
        name = strrchr(argv[0],'/');
        if (name) name++; else name = argv[0];
 
        semkey = ftok(pidfile,0);
 
-       if (!debug) for (fd=3; fd<OPEN_MAX; fd++) close(fd);
-
        if (check_mkdir(dumpStorage)) exit(1);
        if (check_mkdir(purgeStorage)) exit(1);
        if ( jpreg ) {