diff -urN fcitx-4.2.4.1.orig/src/module/xkb/xkb.c fcitx-4.2.4.1/src/module/xkb/xkb.c --- fcitx-4.2.4.1.orig/src/module/xkb/xkb.c 2012-06-16 22:27:00.087029656 +0800 +++ fcitx-4.2.4.1/src/module/xkb/xkb.c 2012-06-16 22:29:18.941293740 +0800 @@ -197,8 +197,7 @@ xkbParentDir = strdup("/usr/share/X11"); } - rulesFile = fcitx_utils_malloc0(sizeof(char) * (1 + strlen(xkbParentDir) + strlen(rulesName) + strlen("/xkb/rules/"))); - sprintf(rulesFile, "%s/xkb/rules/%s.xml", xkbParentDir, rulesName); + asprintf(&rulesFile, "%s/xkb/rules/%s.xml", xkbParentDir, rulesName); fcitx_utils_free(xkbParentDir); } diff -urN fcitx-4.2.4.1.orig/src/ui/classic/skin.c fcitx-4.2.4.1/src/ui/classic/skin.c --- fcitx-4.2.4.1.orig/src/ui/classic/skin.c 2012-06-16 22:27:00.090029620 +0800 +++ fcitx-4.2.4.1/src/ui/classic/skin.c 2012-06-16 22:30:39.775283176 +0800 @@ -216,7 +216,7 @@ const char* fallbackChainNoFallback[] = { buf }; const char* fallbackChainPanel[] = { buf, "skin/default" }; const char* fallbackChainTray[] = { "imicon" }; - const char* fallbackChainPanelIMIcon[] = { buf, "imicon" }; + const char* fallbackChainPanelIMIcon[] = { buf, "imicon", "skin/default" }; HASH_FIND_STR(*imageTable, name, image); if (image != NULL) {