diff -Nurw gcin-1.4.7~pre6.orig/tsa2d32.cpp gcin-1.4.7~pre6/tsa2d32.cpp
--- gcin-1.4.7~pre6.orig/tsa2d32.cpp	2010-01-31 21:57:16.000000000 +0800
+++ gcin-1.4.7~pre6/tsa2d32.cpp	2010-02-01 13:32:36.000000000 +0800
@@ -34,7 +34,7 @@
   return 0;
 }
 
-int key_cmp32(char *a, char *b, char len)
+int key_cmp32(char *a, char *b, unsigned char len)
 {
   u_char i;
   for(i=0; i < len; i++) {
@@ -49,7 +49,7 @@
   return 0;
 }
 
-int key_cmp64(char *a, char *b, char len)
+int key_cmp64(char *a, char *b, unsigned char len)
 {
   u_char i;
   for(i=0; i < len; i++) {
@@ -224,13 +224,13 @@
   if (is_gtab) {
     cur_inmd->keybits = keybits;
     if (gtabkey64) {
-      cphbuf = phbuf64;
+      cphbuf = (char *) phbuf64;
       phsz = 8;
       key_cmp = key_cmp64;
       hash_shift = TSIN_HASH_SHIFT_64;
       cur_inmd->key64 = TRUE;
     } else {
-      cphbuf = phbuf32;
+      cphbuf = (char *) phbuf32;
       phsz = 4;
       hash_shift = TSIN_HASH_SHIFT_32;
       key_cmp = key_cmp32;
@@ -239,7 +239,7 @@
     cur_inmd->last_k_bitn = (((cur_inmd->key64 ? 64:32) / cur_inmd->keybits) - 1) * cur_inmd->keybits;
     dbg("cur_inmd->last_k_bitn %d\n", cur_inmd->last_k_bitn);
   } else {
-      cphbuf = phbuf;
+      cphbuf = (char *) phbuf;
       phsz = 2;
       key_cmp = key_cmp16;
       hash_shift = TSIN_HASH_SHIFT;
diff -Nurw gcin-1.4.7~pre6.orig/tsin.cpp gcin-1.4.7~pre6/tsin.cpp
--- gcin-1.4.7~pre6.orig/tsin.cpp	2010-01-29 17:00:13.000000000 +0800
+++ gcin-1.4.7~pre6/tsin.cpp	2010-02-01 13:32:30.000000000 +0800
@@ -63,6 +63,7 @@
   cs->tsin_pho_mode = 1;
 }
 
+void show_tsin_stat();
 
 void set_tsin_pho_mode(ClientState *cs)
 {
