--- /dev/null
+diff -ruN umurmur-0.2.1/src/channel.c umurmur-0.2.1.new/src/channel.c
+--- umurmur-0.2.1/src/channel.c 2010-02-13 23:36:54.000000000 +0100
++++ umurmur-0.2.1.new/src/channel.c 2010-02-28 00:00:43.661542508 +0100
+@@ -276,9 +276,12 @@
+ int Chan_userJoin(channel_t *ch, client_t *client)
+ {
+ int leaving_id;
++
++ /* Do nothing if user already is in this channel */
++ if ((channel_t *)client->channel == ch)
++ return 0;
+
+ Log_debug("Add user %s to channel %s", client->username, ch->name);
+-
+ /* Only allowed in one channel at a time */
+ leaving_id = Chan_userLeave(client);
+ list_add_tail(&client->chan_node, &ch->clients);