diff -uNrbB ibus-chewing-1.3.10-Source.bak/src/IBusChewingEngine-def.c ibus-chewing-1.3.10-Source/src/IBusChewingEngine-def.c
--- ibus-chewing-1.3.10-Source.bak/src/IBusChewingEngine-def.c	2012-03-11 09:45:48.000000000 +0800
+++ ibus-chewing-1.3.10-Source/src/IBusChewingEngine-def.c	2012-03-11 16:06:53.000000000 +0800
@@ -392,13 +392,13 @@
 	    gVar=g_variant_new_uint32(g_value_get_uint(gValue));
 	    break;
 	case G_TYPE_UINT64:
-	    gVar=g_variant_new_uint64(g_value_get_uint(gValue));
+	    gVar=g_variant_new_uint64(g_value_get_uint64(gValue));
 	    break;
 	case G_TYPE_INT:
-	    gVar=g_variant_new_int32(g_value_get_uint(gValue));
+	    gVar=g_variant_new_int32(g_value_get_int(gValue));
 	    break;
 	case G_TYPE_INT64:
-	    gVar=g_variant_new_int64(g_value_get_uint(gValue));
+	    gVar=g_variant_new_int64(g_value_get_int64(gValue));
 	    break;
 	case G_TYPE_STRING:
 	    gVar=g_variant_new_string(g_value_get_string(gValue));
