--- m4/gettext.m4.orig	2010-01-03 21:26:04.000000000 +0900
+++ m4/gettext.m4	2014-04-03 10:20:12.000000000 +0900
@@ -87,13 +87,19 @@
   save_LIBS=$LIBS
   CPPFLAGS="$save_CPPFLAGS $iconv_includes"
   LIBS="$save_LIBS $iconv_libraries"
-  AC_CHECK_LIB(iconv, iconv_open,
-    [ICONVLIBS="$iconv_libraries -liconv"; LIBS="$LIBS -liconv"])
-  AC_CHECK_FUNCS(iconv_open locale_charset)
-  AC_CHECK_HEADERS(iconv.h libcharset.h)
-  if test $ac_cv_func_iconv_open != no; then
-    ICONVINCS="$iconv_includes"
-  fi
+  initial_LIBS="$LIBS"
+  AC_SEARCH_LIBS([iconv_open],
+    [iconv],
+    [AS_IF([test "$LIBS" = "$initial_LIBS"],
+      [AC_CHECK_HEADERS([iconv.h])
+        AC_CHECK_FUNCS([iconv_open])
+        ICONVLIBS="$iconv_libraries"
+	ICONVINCS="$iconv_includes"],
+      [AC_CHECK_LIB([charset], [locale_charset])
+        AC_CHECK_HEADERS([iconv.h libcharset.h])
+        AC_CHECK_FUNCS([iconv_open locale_charset])
+	ICONVLIBS="$iconv_libraries -lcharset -liconv"
+	ICONVINCS="$iconv_includes"])])
   CPPFLAGS=$save_CPPFLAGS
   LIBS=$save_LIBS
   AC_SUBST(ICONVINCS)
@@ -113,10 +119,10 @@
     save_LIBS=$LIBS
 
     dnl *
-    dnl * Test 1: Try to link both libintl and libiconv.
+    dnl * Test 1: Try to link libc only.
     dnl *
-    CPPFLAGS="$save_CPPFLAGS $gettext_includes"
-    LIBS="$save_LIBS $gettext_libraries -lintl $iconv_libraries -liconv"
+    CPPFLAGS="$save_CPPFLAGS"
+    LIBS="$save_LIBS"
     AC_LINK_IFELSE([
 #include <stdio.h>
 #ifdef ENABLE_NLS
@@ -143,8 +149,8 @@
     try_nls=yes, try_nls=no)
 
     if test "$try_nls" = yes; then
-      INTLINCS="$gettext_includes"
-      INTLLIBS="$gettext_libraries -lintl $iconv_libraries -liconv"
+      INTLINCS=
+      INTLLIBS=
     fi
 
     dnl *
@@ -222,11 +228,11 @@
     fi
 
     dnl *
-    dnl * Test 4: Try to link libc only.
+    dnl * Test 4: Try to link both libintl and libiconv.
     dnl * 
     if test "$try_nls" = no; then
-      CPPFLAGS="$save_CPPFLAGS"
-      LIBS="$save_LIBS"
+      CPPFLAGS="$save_CPPFLAGS $gettext_includes"
+      LIBS="$save_LIBS $gettext_libraries -lintl $iconv_libraries -liconv"
       AC_LINK_IFELSE([
 #include <stdio.h>
 #ifdef ENABLE_NLS
@@ -253,8 +259,8 @@
       try_nls=yes, try_nls=no)
 
       if test "$try_nls" = yes; then
-        INTLINCS=
-        INTLLIBS=
+        INTLINCS="$gettext_includes"
+        INTLLIBS="$gettext_libraries -lintl $iconv_libraries -liconv"
       fi
     fi
 
