--- m4/curses.m4
+++ m4/curses.m4
@@ -28,7 +28,7 @@
   AC_ARG_ENABLE(ncurses,    [  --disable-ncurses       don't prefer -lncurses over -lcurses],
               , enable_ncurses=yes)
   if test "$enable_ncurses" = yes; then
-    AC_CHECK_LIB(ncurses, initscr, LIBNCURSES="-lncurses")
+    AC_CHECK_LIB(ncursesw, initscr, LIBNCURSES="-lncursesw")
     if test "$LIBNCURSES"; then
       # Use ncurses header files instead of the ordinary ones, if possible;
       # is there a better way of doing this, that avoids looking in specific
--- pinentry/pinentry-curses.c
+++ pinentry/pinentry-curses.c
@@ -546,6 +545,14 @@
   SCREEN *screen = 0;
   int done = 0;
   char *pin_utf8;
+  char *old_ctype = NULL;
+  
+    
+  if (pinentry->lc_ctype)
+    {
+    old_ctype = strdup (setlocale (LC_CTYPE, NULL));
+    setlocale (LC_CTYPE, pinentry->lc_ctype);
+    }
 
   /* Open the desired terminal if necessary.  */
   if (tty_name)
@@ -684,6 +690,12 @@
   if (screen)
     delscreen (screen);
 
+  if (old_ctype)
+    {
+    setlocale (LC_CTYPE, old_ctype);
+    free(old_ctype);
+    }
+
   if (ttyfi)
     fclose (ttyfi);
   if (ttyfo)
