--- a/src/dcc_net.c 2001-12-21 21:15:55.000000000 +0100 +++ b/src/dcc_net.c 2004-12-14 15:40:45.976549384 +0100 @@ -364,7 +364,8 @@ n = p->next; _dccnet_free(p); - p = (l ? l->next : proxies) = n; + if (l) l->next = n; else proxies = n; + p = n; } else { l = p; p = p->next; diff -urN a/src/irc_server.c ./src/irc_server.c --- a/src/irc_server.c 2002-01-31 15:56:37.000000000 +0100 +++ b/src/irc_server.c 2004-12-14 15:39:49.163186328 +0100 @@ -700,7 +700,8 @@ free(s); /* Was in the squelch list, so remove it and stop looking */ - s = (l ? l->next : p->squelch_modes) = n; + if (l) l->next = n; else p->squelch_modes = n; + s = n; squelch = 1; break; } else { @@ -741,7 +742,8 @@ free(s); /* Was in the squelch list, so remove it and stop looking */ - s = (l ? l->next : p->squelch_modes) = n; + if (l) l->next = n; else p->squelch_modes = n; + s = n; squelch = 1; break; } else { diff -urN ../tmp-orig/dircproxy-1.0.5/src/net.c ./src/net.c --- a/src/net.c 2002-01-01 18:55:23.000000000 +0100 +++ b/src/net.c 2004-12-14 15:41:43.499804520 +0100 @@ -459,7 +459,7 @@ return 0; } - l = &(buff == SB_IN ? s->in_buff_last : s->out_buff_last); + l = (buff == SB_IN) ? &s->in_buff_last : &s->out_buff_last; /* Check whether we can just add to the existing buffer */ if ((mode == SM_RAW) && *l && ((*l)->mode == mode)) {