diff -Nur gcin-2.4.4.bck2/eve.cpp gcin-2.4.4/eve.cpp
--- gcin-2.4.4.bck2/eve.cpp	2011-11-30 08:49:35.000000000 +0800
+++ gcin-2.4.4/eve.cpp	2011-12-06 10:53:44.222260000 +0800
@@ -637,7 +637,6 @@
 void win_pho_disp_half_full();
 void win_tsin_disp_half_full();
 void win_gtab_disp_half_full();
-extern char eng_full_str[], full_char_str[];
 void update_tray_icon(), load_tray_icon(), load_tray_icon_win32();
 static int current_gcin_win32_icon = -1;
 void restart_gcin0();
@@ -839,7 +838,6 @@
 
 void disp_gtab_half_full(gboolean hf);
 void tsin_toggle_half_full();
-extern char eng_full_str[];
 
 void toggle_half_full_char()
 {
diff -Nur gcin-2.4.4.bck2/gcin-conf.h gcin-2.4.4/gcin-conf.h
--- gcin-2.4.4.bck2/gcin-conf.h	2011-12-03 08:22:06.000000000 +0800
+++ gcin-2.4.4/gcin-conf.h	2011-12-06 10:53:44.222260000 +0800
@@ -133,6 +133,8 @@
 extern int tsin_space_opt, tsin_tone_char_input;
 
 extern char *tsin_phrase_line_color, *tsin_cursor_color, *gcin_font_name, *gcin_sel_key_color;
+extern unich_t eng_full_str[], cht_full_str[];
+extern char eng_color_full_str[128], cht_color_full_str[128];
 extern char *gcin_win_color_fg, *gcin_win_color_bg;
 extern int gcin_win_color_use, gcin_bell_off;
 extern int gcin_init_im_enabled, gcin_win32_icon;
diff -Nur gcin-2.4.4.bck2/gcin-settings.cpp gcin-2.4.4/gcin-settings.cpp
--- gcin-2.4.4.bck2/gcin-settings.cpp	2011-12-06 10:53:26.468353000 +0800
+++ gcin-2.4.4/gcin-settings.cpp	2011-12-06 10:53:44.224351000 +0800
@@ -46,6 +46,9 @@
 int gcin_shift_space_eng_full;
 char *tsin_phrase_line_color;
 char *tsin_cursor_color, *gcin_sel_key_color;
+unich_t eng_full_str[]=_L("[英/全]");
+unich_t cht_full_str[]=_L("[全]");
+char eng_color_full_str[128], cht_color_full_str[128];
 int tsin_tab_phrase_end;
 int gcin_input_style, gcin_root_x, gcin_root_y, gcin_pop_up_win;
 int gcin_inner_frame;
@@ -156,6 +159,8 @@
   get_gcin_conf_str(TSIN_PHRASE_LINE_COLOR, &tsin_phrase_line_color, "blue");
   get_gcin_conf_str(TSIN_CURSOR_COLOR, &tsin_cursor_color, "blue");
   get_gcin_conf_str(GCIN_SEL_KEY_COLOR, &gcin_sel_key_color, "blue");
+  g_snprintf(eng_color_full_str, 128, "<span foreground=\"%s\">%s</span>", gcin_sel_key_color, _(eng_full_str));
+  g_snprintf(cht_color_full_str, 128, "<span foreground=\"%s\">%s</span>", gcin_sel_key_color, _(cht_full_str));
 
   get_gcin_conf_str(GCIN_WIN_COLOR_FG, &gcin_win_color_fg, "white");
   get_gcin_conf_str(GCIN_WIN_COLOR_BG, &gcin_win_color_bg, "#005BFF");
diff -Nur gcin-2.4.4.bck2/gcin-setup.cpp gcin-2.4.4/gcin-setup.cpp
--- gcin-2.4.4.bck2/gcin-setup.cpp	2011-12-02 22:00:55.000000000 +0800
+++ gcin-2.4.4/gcin-setup.cpp	2011-12-06 14:22:13.976349689 +0800
@@ -547,6 +553,9 @@
   gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(gtk_color_selection_dialog_get_color_selection(color_selector)), &gcin_sel_key_gcolor);
   gcin_sel_key_color = gtk_color_selection_palette_to_string(&gcin_sel_key_gcolor, 1);
 
+  g_snprintf(eng_color_full_str, 128, "<span foreground=\"%s\">%s</span>", gcin_sel_key_color, _(eng_full_str));
+  g_snprintf(cht_color_full_str, 128, "<span foreground=\"%s\">%s</span>", gcin_sel_key_color, _(cht_full_str));
+
   disp_fg_bg_color();
 }
 
diff -Nur gcin-2.4.4.bck2/win-gtab.cpp gcin-2.4.4/win-gtab.cpp
--- gcin-2.4.4.bck2/win-gtab.cpp	2011-12-04 16:07:33.000000000 +0800
+++ gcin-2.4.4/win-gtab.cpp	2011-12-06 10:53:44.224351000 +0800
@@ -32,10 +32,6 @@
 void move_win_gtab(int x, int y), toggle_win_sym();
 int win_gtab_max_key_press;
 
-unich_t eng_full_str[]=_L("<span foreground=\"blue\">[英/全]</span>");
-unich_t cht_full_str[]=_L("<span foreground=\"blue\">[全]</span>");
-unich_t cht_halt_str[]=_L("");
-
 static void adj_gtab_win_pos()
 {
   if (!gwin_gtab)
@@ -603,11 +599,17 @@
 
 
     label_gtab = gtk_label_new(NULL);
-    if (current_CS && (! gcin_status_tray) && (gtab_hide_row2))
+    if (current_CS && (! gcin_status_tray) && gtab_hide_row2 && gtab_disp_im_name)
     {
-      gchar *color_cname = g_strdup_printf("<span foreground=\"blue\">[%s]</span>", inmd[current_CS->in_method].cname);
-      gtk_label_set_markup(GTK_LABEL(label_gtab), color_cname);
-      g_free(color_cname);
+      if (gcin_win_color_use)
+      {
+	gchar *color_cname = g_strdup_printf("<span foreground=\"%s\">[%s]</span>",
+					     gcin_sel_key_color, inmd[current_CS->in_method].cname);
+	gtk_label_set_markup(GTK_LABEL(label_gtab), color_cname);
+	g_free(color_cname);
+      }
+      else
+	gtk_label_set_text(GTK_LABEL(label_gtab), inmd[current_CS->in_method].cname);
     }
 
     if (gtab_in_area_button)
@@ -822,12 +824,20 @@
   switch (current_CS->im_state) {
     case GCIN_STATE_CHINESE:
       if (current_CS->b_half_full_char)
-        return _(cht_full_str);
+      {
+	if (gcin_win_color_use)
+	  return cht_color_full_str;
+	else
+          return _(cht_full_str);
+      }
       break;
     case GCIN_STATE_ENG_FULL:
-      return _(eng_full_str);
+      if (gcin_win_color_use)
+        return eng_color_full_str;
+      else
+        return _(eng_full_str);
   }
-  return _(cht_halt_str);
+  return ("");
 }
 
 void win_gtab_disp_half_full()
