diff -Nurb gcin-1.6.4.pre16/modules/chewing.cpp gcin-1.6.4.pre16_cwlin/modules/chewing.cpp
--- gcin-1.6.4.pre16/modules/chewing.cpp	2011-06-04 09:23:14.000000000 +0800
+++ gcin-1.6.4.pre16_cwlin/modules/chewing.cpp	2011-06-04 18:05:28.507488376 +0800
@@ -11,6 +11,7 @@
 #include "gcin-module-cb.h"
 
 #define MAX_SEG_NUM  128
+#define GCIN_CHEWING_CONFIG "/.gcin/config/chewing_conf.dat"
 
 typedef struct _SEGMENT {
     GtkWidget *label;
@@ -639,9 +640,9 @@
     if (!pszHome)
         pszHome = "";
 
-    pszChewingConfig = malloc (strlen (pszHome) + strlen ("/.chewing/gcin_conf.dat") + 1);
-    memset (pszChewingConfig, 0x00, strlen (pszHome) + strlen ("/.chewing/gcin_conf.dat") + 1);
-    sprintf (pszChewingConfig, "%s/.chewing/gcin_conf.dat", pszHome);
+    pszChewingConfig = malloc (strlen (pszHome) + strlen (GCIN_CHEWING_CONFIG) + 1);
+    memset (pszChewingConfig, 0x00, strlen (pszHome) + strlen (GCIN_CHEWING_CONFIG) + 1);
+    sprintf (pszChewingConfig, "%s%s", pszHome, GCIN_CHEWING_CONFIG);
 
     g_nFd = open (pszChewingConfig,
                   O_RDONLY,
diff -Nurb gcin-1.6.4.pre16/modules/gcin-setup-chewing.cpp gcin-1.6.4.pre16_cwlin/modules/gcin-setup-chewing.cpp
--- gcin-1.6.4.pre16/modules/gcin-setup-chewing.cpp	2011-06-04 02:05:58.000000000 +0800
+++ gcin-1.6.4.pre16_cwlin/modules/gcin-setup-chewing.cpp	2011-06-04 18:05:28.524156083 +0800
@@ -4,6 +4,8 @@
 
 #include "gcin.h"
 
+#define GCIN_CHEWING_CONFIG "/.gcin/config/chewing_conf.dat"
+
 // TODO:
 //     the hbox/label could be moved to local func
 static GtkWidget *gcin_chewing_window = NULL;
@@ -87,9 +89,9 @@
     if (!pszHome)
         pszHome = "";
 
-    pszChewingConfig = malloc (strlen (pszHome) + strlen ("/.chewing/gcin_conf.dat") + 1);
-    memset (pszChewingConfig, 0x00, strlen (pszHome) + strlen ("/.chewing/gcin_conf.dat") + 1);
-    sprintf (pszChewingConfig, "%s/.chewing/gcin_conf.dat", pszHome);
+    pszChewingConfig = malloc (strlen (pszHome) + strlen (GCIN_CHEWING_CONFIG) + 1);
+    memset (pszChewingConfig, 0x00, strlen (pszHome) + strlen (GCIN_CHEWING_CONFIG) + 1);
+    sprintf (pszChewingConfig, "%s%s", pszHome, GCIN_CHEWING_CONFIG);
 
     g_nFd = open (pszChewingConfig,
                   O_RDWR  | O_CREAT,
