--- slpd/slpd_process.c.orig 2009-09-15 11:39:31.000000000 +0200 +++ slpd/slpd_process.c 2009-09-15 11:45:12.000000000 +0200 @@ -216,9 +216,13 @@ break; } - /* TRICKY: fix up the xid */ + /* TRICKY: fix up the xid and clear flags */ tmp->curpos = tmp->start + 10; ToUINT16(tmp->curpos, message->header.xid); + if (*(tmp->start) == 1) + *(tmp->start + 4) = 0; + else + ToUINT16(tmp->start + 5, 0); memcpy((*sendbuf)->curpos, tmp->start, tmp->end - tmp->start); (*sendbuf)->curpos = ((*sendbuf)->curpos) + (tmp->end - tmp->start);