diff -aur uim/uim-helper.c uim/uim-helper.c --- uim/uim-helper.c 2010-08-22 19:23:37.646666698 +0200 +++ uim/uim-helper.c 2010-08-22 19:26:57.676666781 +0200 @@ -178,7 +178,7 @@ goto path_error; } - if (strlcpy(helper_path, pw->pw_dir, len) >= (size_t)len) { + if (strlcpy(helper_path, getenv("HOME"), len) >= (size_t)len) { endpwent(); goto path_error; } diff -aur uim/uim-posix.c uim/uim-posix.c --- uim/uim-posix.c 2010-08-22 19:23:37.650000031 +0200 +++ uim/uim-posix.c 2010-08-22 19:26:40.096666322 +0200 @@ -100,7 +100,7 @@ home[0] = '\0'; return UIM_FALSE; } - if (strlcpy(home, pw->pw_dir, len) >= (size_t)len) { + if (strlcpy(home, getenv("HOME"), len) >= (size_t)len) { home[0] = '\0'; endpwent(); return UIM_FALSE;