diff -urN tiarra-20030928/ChangeLog tiarra-20031012/ChangeLog
--- tiarra-20030928/ChangeLog	2003-10-12 08:55:04.000000000 +0900
+++ tiarra-20031012/ChangeLog	2003-10-12 21:16:23.000000000 +0900
@@ -1,3 +1,8 @@
+2003-10-12  phonohawk  <phonohawk@lycos.co.uk>
+
+	* main/IRCMessage.pm (serialize):
+	最後のパラメータがコロンを含んでいる時に、間違った文字列化をする問題を解決。
+
 2003-09-28  phonohawk  <phonohawk@lycos.co.uk>
 
 	* tiarra-conf.el:
@@ -942,7 +947,7 @@
 
 	* これ以前のログは書いていません。
 
-#       Id: $Id: ChangeLog,v 1.105 2003/09/28 05:15:22 admin Exp $
+#       Id: $Id: ChangeLog,v 1.106 2003/10/12 12:08:57 admin Exp $
 #   Author: $Author: admin $
-#     Date: $Date: 2003/09/28 05:15:22 $
-# Revision: $Revision: 1.105 $
+#     Date: $Date: 2003/10/12 12:08:57 $
+# Revision: $Revision: 1.106 $
diff -urN tiarra-20030928/main/IRCMessage.pm tiarra-20031012/main/IRCMessage.pm
--- tiarra-20030928/main/IRCMessage.pm	2003-10-12 08:55:05.000000000 +0900
+++ tiarra-20031012/main/IRCMessage.pm	2003-10-12 21:16:24.000000000 +0900
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: IRCMessage.pm,v 1.13 2003/09/20 11:06:20 admin Exp $
+# $Id: IRCMessage.pm,v 1.14 2003/10/12 12:08:57 admin Exp $
 # -----------------------------------------------------------------------------
 # IRCMessageはIRCのメッセージを表わすクラスです。実際のメッセージはUTF-8で保持します。
 # 生のメッセージのパース、シリアライズ、そしてメッセージの生成をサポートします。
@@ -240,9 +240,15 @@
 	for (my $i = 0;$i < $n_params;$i++) {
 	    if ($i == $n_params - 1) {
 		# 最後のパラメタなら頭にコロンを付けて後にはスペースを置かない。
-		# 但し半角スペースが一つも無ければコロンを付けない。
+		# 但し半角スペースが一つも無く、且つコロンで始まっていなければコロンを付けない。
 		my $arg = $unicode->set($this->[PARAMS]->[$i])->conv($encoding);
-		$result .= (index($arg,' ') != -1 ? ':' : '').$arg;
+		if (index($arg, ' ') == -1 and
+		      index($arg, ':') != 0) {
+		    $result .= $arg;
+		}
+		else {
+		    $result .= ":$arg";
+		}
 		# 本当はCTCPメッセージを外してエンコードすべきかも知れない。
 	    }
 	    else {
