diff --git a/pvpgn/src/bnetd/irc.cpp b/pvpgn/src/bnetd/irc.cpp
index 07f10e1..4f68660 100644
--- a/pvpgn/src/bnetd/irc.cpp
+++ b/pvpgn/src/bnetd/irc.cpp
@@ -650,7 +650,7 @@ extern int irc_message_format(t_packet * packet, t_message_type type, t_connecti
 
         channel = conn_get_channel(me);
 
-	if((conn_get_wol(me) == 1) && (conn_get_clienttag(me) != CLIENTTAG_WCHAT_UINT))
+	if((conn_get_wol(dst) == 1) && (conn_get_clienttag(dst) != CLIENTTAG_WCHAT_UINT))
 	{
             char temp[MAX_IRC_MESSAGE_LEN];
     	    t_clan * clan;
@@ -670,7 +670,7 @@ extern int irc_message_format(t_packet * packet, t_message_type type, t_connecti
             std::sprintf(temp,":%u,%u",clanid,conn_get_addr(me));
     	    msg = irc_message_preformat(&from,"JOIN",temp,irc_convert_channel(channel));
         }
-        else if (conn_get_clienttag(me) == CLIENTTAG_WCHAT_UINT) {
+        else if (conn_get_clienttag(dst) == CLIENTTAG_WCHAT_UINT) {
             char temp[MAX_IRC_MESSAGE_LEN];
     	    std::memset(temp,0,sizeof(temp));
 
@@ -686,7 +686,8 @@ extern int irc_message_format(t_packet * packet, t_message_type type, t_connecti
         else {
             msg = irc_message_preformat(&from,"JOIN","\r",irc_convert_channel(channel));
         }
-        irc_send_rpl_namreply(me,channel);
+        if (me==dst)
+	    irc_send_rpl_namreply(dst,channel);
     	conn_unget_chatname(me,from.nick);
     }
     	break;
@@ -906,8 +907,11 @@ int irc_send_rpl_namreply_internal(t_connection * c, t_channel const * channel){
 	eventlog(eventlog_level_warn,__FUNCTION__,"maximum message length exceeded");
 	return -1;
     }
+
+eventlog(eventlog_level_debug,__FUNCTION__,"about to add users");
+
     /* FIXME: Add per user flags (@(op) and +(voice))*/
-    if (!channel_get_flags(channel) & channel_flags_thevoid)
+    if (!(channel_get_flags(channel) & channel_flags_thevoid))
     for (m = channel_get_first(channel);m;m = channel_get_next()) {
 	char const * name = conn_get_chatname(m);
 	char flg[5] = "";
@@ -977,7 +981,7 @@ extern int irc_send_rpl_namreply(t_connection * c, t_channel const * channel)
 	    return -1;
         }
         irc_send_rpl_namreply_internal(c, channel);
-        std:sprintf(temp, "%32s :End of NAMES list", ircname);
+        std:sprintf(temp, "%.32s :End of NAMES list", ircname);
     } else {
         t_elem const * curr;
         LIST_TRAVERSE_CONST(channellist(),curr)