I am still trying to solve this problem. I have verirified from debugging that there is some disconnect in the values salen and addrlen and between A_RECV(read, closure->max_log_line - closure->pos, closure-> buffer + closure->pos, (abstract_addr *) &sabuf, &salen); in syslog-ng-1.6rc0/src/sources.c and res = recvfrom(closure->fd, buffer, length, 0, (struct sockaddr *) addr, (socklen_t *) addrlen); in libol-0.3.9/src/io.c. salen is set to 256 before and after the A_RECV() is called, but addrlen is set to 0 and sockaddr seems to point to nothing in before recvfrom() is called. As a result recvfrom() simply doesn't record the address information of the sending host. This is on SunOS-5.8-sparc in 64-bit mode with gcc 3.2.1 compiling 64-bit binaries. Anyway, the result is that syslog-ng is unable to record the address of the sending host and winds up prepending all logged messages with it's own hostname, rather than the sending host's. With all of the casting and and abstraction involved in the code, I am not sure what to try next. Any suggestions? Is this a 64-bit problem? Brian