--- gcin-1.4.0.pre2/tsin.c	2008-02-08 14:57:43.000000000 +0800
+++ ./tsin.c	2008-02-15 22:48:04.000000000 +0800
@@ -36,7 +36,7 @@
 static int startf;
 static gboolean full_match;
 static gboolean tsin_half_full;
-static int bufferEditing = 0; //0 = buffer editing mode is disabled
+static gboolean tsin_buffer_editing = 0;
 
 typedef struct {
   phokey_t phokey[MAX_PHRASE_LEN];
@@ -282,6 +282,7 @@
   clear_ch_buf_sel_area();
   close_selection_win();
   pre_selN = 0;
+  tsin_buffer_editing = 0; //buffer editing is finished
 }
 
 void clr_in_area_pho_tsin();
@@ -1574,9 +1575,9 @@
            if (gcin_pop_up_win)
              hide_win0();
            return 1;
-         } else if (xkey == XK_e) {
-           //trigger
-           bufferEditing ^= 1;
+         } else if (tsin_buffer_editing_mode && xkey == XK_e) { //ctrl+e only works when user enabled tsin_buffer_editing_mode
+           //toggler
+           tsin_buffer_editing ^= 1;
            return 1;
          } else if (xkey>=XK_1 && xkey<=XK_3) {
            return 1;
@@ -1588,7 +1589,7 @@
        if ('A' <= xkey && xkey <= 'Z')
           xkey_lcase = tolower(xkey);
 
-       if (bufferEditing) {
+       if (tsin_buffer_editing) { 
          if (xkey_lcase=='h')
            return cursor_left();
          else
