diff --git a/irc/events.go b/irc/events.go
index f8c5d0410bcc186fc6e3bc939caa17e7689fd5fe..22e6ed34bed74bfc2c89e673d3fd4a6557803a64 100644
--- a/irc/events.go
+++ b/irc/events.go
@@ -14,7 +14,7 @@ import (
 func (t *Transport) connected(client *irc.Conn, line *irc.Line) {
 	if t.client != client {
 		// user's client
-		for _, channel := range t.channels {
+		for _, channel := range t.userChannels[client.Me().Nick] {
 			log.Printf("join %s", channel)
 			client.Join(channel)
 		}
@@ -41,7 +41,7 @@ func (t *Transport) connected(client *irc.Conn, line *irc.Line) {
 func (t *Transport) disconnected(client *irc.Conn, line *irc.Line) {
 	if t.client != client {
 		// all should already have been cleaned
-		log.Print("%s got disconnected", client.Me())
+		log.Print("%s got disconnected", client.Me().Nick)
 		return
 	}