Programming:
- Grep for 'XXX' comments and fix

- Replacement for setproctitle() - HP/UX support only currently

- Improve PAM support (a pam_lastlog module will cause sshd to exit)
  and maybe support alternate forms of authenications like OPIE via
  pam?

- Complete Tru64 SIA support

- Finish integrating kernel-level auditing code for IRIX and SOLARIS
  (Gilbert.r.loomis@saic.com)

- sftp-server:  Rework to step down to 32bit ints if the platform
  lacks 'long long' == 64bit (Notable SCO w/ SCO compiler)

- Linux hangs for 20 seconds when you do "sleep 20&exit".  All current
  solutions break scp or leaves processes hanging around after the ssh
  connection has ended.  It seems to be linked to two things.  One
  select() under Linux is not as nice as others, and two the children
  of the shell are not killed on exiting the shell.

- Build an automated test suite

- HP/UX has issues with SIGCHILD handling.  There needs to be a wait() defined
  before reinstall.  Keven Steves <stevesk@pobox.com>

Documentation:
- More and better

- Install FAQ?

- General FAQ on S/Key, TIS, RSA, RSA2, DSA, etc and suggestions on when it
  would be best to use them.  

- Create a Documentation/ directory?

Clean up configure/makefiles:
- Clean up configure.in - There are a few double #defined variables
  left to do.  HAVE_LOGIN is one of them.  Consider NOT looking for information
  in wtmpx or utmpx or any of that stuff if it's not detected from the start

- Fix Make functionality so that build from a different directory work. 
  (roth@feep.net)

- Fails to compile when cross compile.
  (vinschen@redhat.com)

- Replace the whole u_intXX_t evilness in acconfig.h with something better???

- Consider splitting the u_intXX_t test for sys/bitype.h  into seperate test
  to allow people to (right/wrongfully) link against Bind directly.

Packaging:
- Solaris: Update packaging scripts and build new sysv startup scripts
  (gilbert.r.loomis@saic.com)

- HP/UX: Provide DEPOT package scripts.
  (gilbert.r.loomis@saic.com)
