原因つきとめました。

scim-1.4.7/extras/gtk2_immodule/gtkimcontextscim.cpp の456行目:

SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_shutdown...\n";

が、2回目に呼ばれた時に起こるようです。
ここは gtk_im_context_scim_shutdown() と言う関数の中ですが、
なぜかこれが2回呼ばれます。
で、1度目はいいのですが、2回目に呼ばれた時はすでに
一度 scim が shutdown した後なので、それでおかしく?なるようです。
あまり深く突っ込んでいませんが。

で、パッチを作りました。これを
/usr/ports/textproc/scim/work/scim-1.4.7/
で適用してください。

patch < scim-gtk-bug.diff

単に SCIM_DEBUG_FRONTEND(1) ...... をコメントアウトしただけですが。
(本当は if (_scim_initialized) {} の中に移動した方がいいかもしれませんが)

お試しください。

-- 
Hiroshi Nishida
[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]

diff -ur extras.org/gtk2_immodule/gtkimcontextscim.cpp 
extras/gtk2_immodule/gtkimcontextscim.cpp
--- extras.org/gtk2_immodule/gtkimcontextscim.cpp       2008-04-25 
13:45:48.000000000 -0700
+++ extras/gtk2_immodule/gtkimcontextscim.cpp   2008-04-25 13:44:53.000000000 
-0700
@@ -453,7 +453,7 @@
 void
 gtk_im_context_scim_shutdown (void)
 {
-    SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_shutdown...\n";
+    //SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_shutdown...\n";
 
     if (_scim_initialized) {
         SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_shutdown: call finalize 
()...\n";

メールによる返信