Questions and Answers
Why doesn't root receive announcements?
Because this would be security hole, with the current user detection. You can bypass the limitation by adding two lines in xdm config files (which are the same as ones).
The S.u.S.E distribution includes those lines by default.
Those config files are normally in a directory such as /etc/X11/xdm, or /usr/X11R6/lib/X11/xdm on other systems. The following supposes that they are in /etc/X11/xdm, so you might have to translate them for another directory.
Here is what you have to do:
Edit the file Xstartup, or create it, (in the xdm config directory) so that it reads:

#!/bin/sh
/etc/X11/xdm/GiveConsole
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER

and the file Xreset so that it reads:

#!/bin/sh
/etc/X11/xdm/TakeConsole
sessreg -d -l $DISPLAY $USER

Make sure that xdm-config make reference to those two files:

DisplayManager._0.startup:      /etc/X11/xdm/Xstartup
DisplayManager._0.reset:        /etc/X11/xdm/Xreset

This will make (or xdm) log the user into utmp, which is the right thing to do. It's not up to , nor xterm, to log the user, but to xdm and , in my opinion. However, this will not log the user as an X user when using startx... Any hint about that ?
Why don't I, as a normal user, receive announcments?
If you're running a system (with /proc enabled), this behaviour is a bug. Please send me a description of it so that I correct it.
If you're running 2.0.35, this is a known bug in the kernel, which doesn't let root read /proc. The solution is the same as in the previous question, provided that you run or xdm to log into X. Or upgrade!
Otherwise, this is normal. can't find the user, as doesn't log him into utmp and the based (/proc) detection is disabled. The solution is the same as in the previous question, provided that you run kdm or xdm to log into X. Another solution is to make sure you always have an xterm running.
How do I get debug output from ?
As it is a daemon, there is no debug output on standard output. To get debugging output (for instance before submitting me a bug report!), update the lines in inetd.conf which launches and to be:

talk   dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/kotalkd -d
ntalk  dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/ktalkd -d

Notice the -d option.
Then edit /etc/syslog.conf to add the following line:

*.*         /var/log/all_messages

To make it work, you then have to restart inetd and syslogd:

% killall -HUP inetd
% killall -HUP syslogd

Finally, run a talk session and see the result in /var/log/all_messages
When submitting a bug report, never forget to include the debugging output, but also 's version number and the ./configure output. Thanks.